当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于μC/OS-II的Modbus协议测试系统

 1 引言

  Modbus 协议最初由Modicon 公司开发出来,1979 年末该公司成为施耐德自动化 (Schneider Automation)部门的一部分。现在Modbus 协议已经是工业领域全球最流行的协 议。Modbus 协议为应用层报文传输协议,仅定义了通讯消息结构,一个Modbus 信息帧包 括从机地址、功能码、数据区和数据校验码。Modbus 协议支持传统的RS-232、RS-422、 RS-485 和以太网设备。许多工业设备,包括PLC、DCS、智能仪表等都在使用Modbus 协 议作为它们之间的通讯标准。 为适应当前开发Modbus 设备过程中协议测试的需求以及Modbus 设备在线测试的需 要,本文提出并实现了基于ARM 嵌入式处理器、μC/OS 实时操作系统的Modbus 协议测试 系统,并给出了系统的软硬件设计。

  2 系统结构

  Modbus 协议测试系统硬件设计采用了工业级嵌入式处理器HMS30C7202 。 HMS30C7202 是Hynix 公司的高性能、低功耗32 位RISC 微处理器,它由ARM720T 内核 和其他一些外围接口电路组成,工作频率为70MHz,支持8KB 的数据与指令Cache、2KB 的SRAM、支持段式和页式存储的MMU、写缓冲器及AMBA 接口。

  HMS307202 采用0.25μm 低功耗CMOS 工艺,片内电压2.5V,I/O 支持3.3V 电压,采用了256 管脚QFP/BGA 封装。 HMS30C7202 片上资源十分丰富,具有极高的集成度,非常适用于嵌入式系统应用,主要 应用于PDA、智能电话、个人音频设备等场合。 测试系统提供了RS-232 和以太网接口,用于实现和被测Modbus 设备的联接。系统 RS-232 接口芯片采用MAX3232。在嵌入式系统内部,将MAX3232 的接收输出端与 HMS30C7202 的通用IO 端口E24 相连。工作时,使用串行电缆将测试系统RS-232 串口和 被测设备的串口联接起来,在测试系统中通过运行测试软件实现对Modbus 协议的测试。系 统结构如图1 所示。

  测试系统的系统软件采用μC/OS-II 实时操作系统,μC/OS-II 的前身是μC/OS,由美国 人Jean Labrosse 编写。μC/OS-II 是一种可剥夺型的实时多任务操作系统,其特点是可固化,可裁减,移植性好。μC/OS-II 功能强大,最多支持56 个用户任务,支持信号量、消息邮箱、 消息队列等多种常用的进程间通信机制。

  现已成功移植到几乎所有知名的MCU 上,其稳定 性与可靠性已经得到检验[1]。 μC/OS-II 是一个可剥夺型抢占式实时多任务内核。μC/OS-II 大部分代码是用ANSI C 语 言编写的,仅包含一小部分汇编语言代码,使之可以提供给不同架构的微处理器使用。至今, 从8 位到64 位,μC/OS-II 已经在40 多种不同架构的微处理器上使用。

  世界上已经有成千上 万的人在各个领域中使用μC/OS,这些领域包括:照相机行业、航空业、医疗器械、网络设 备、自动提款机以及工业机器人等。 由于μC/OS-II 仅仅是一个实时多任务的内核,移植μC/OS-II 到处理器平台以后,离实 际的应用还有一段距离。因此必须对μC/OS-II 进行必要的扩充,才能建立一个实用的实时 操作系统。扩充工作主要包括:建立文件系统、为外部设备建立驱动程序并规范相应的API 函数、创建图形用户接口(GUI)函数、建立其他实用的应用程序接口(API)函数等[2]。

  图1 测试系统结构图[!--empirenews.page--]

  3 软件设计

  μC/OS-II下应用程序设计主要是根据系统的功能需要划分不同的任务和中断,并为每个 任务分配不同的优先级。一个任务通常是一个无限的循环,看起来像其它C的函数一样,有 函数返回类型,有形式参数变量,但任务是决不会返回的,因此返回参数类型必须定义为 void。为了使μC/OS-II能管理用户任务,用户必须在建立一个任务的时候,将任务的起始地 址与其它参数一起传给OSTaskCreate()或OSTaskCreateExt()。

  中断和任务以及任务与任务之间的同步可通过信号量实现。下面以Modbus协议测试程 序中RTU模式下字符时间间隔的测量为例介绍μC/OS-II程序设计中任务和中断的划分。 Modbus的RTU模式中规定[3]:RTU模式下必须以连续的字符流发送整个报文帧,同一个 帧中两个字符之间的空闲时间Δt不能大于1.5个字符时间(称为t1.5),否则就认为报文帧不完 整;不同报文帧之间需要时长至少为3.5个字符的空闲时间,这个时间区间被称为t3.5。RTU 模式下的信息帧如图2所示。

  图2 RTU模式的信息帧

  为了记录RTU 帧中一个字符结束时间和另一个字符的起始时间,系统分别使用串口中 断Uart_ISR 和IO 中断PE24_ISR 分别对这两个时刻进行捕捉。这需要将HMS30C7202 的串 口中断时机设置为接收完一个字符后,将通用I/O 端口线PE24 设为允许中断、下降沿触发。

  为了缩短关中断时间和中断处理时间,可将中断的处理放在任务中进行。在主任务中调 用OSTaskCreate函数分别建立串口接收处理任务Uart_Task和IO口处理任务PE24_Task。在 μC/OS-II中,有一个全局的系统时钟,维护着一个全局时间变量。在Uart_Task和PE24_Task这两个任务中分别通过读取当前全局时间变量来实现对字符起始时间和结束时间的连续测 量。系统利用μC/OS-II中信号量机制实现中断与任务之间的同步[3][4],信号量必须在系统启 动的时候初始化,利用信号量实现任务与中断同步的过程如图3所示。

  图 3 利用信号量实现任务与中断同步[!--empirenews.page--]

  串口处理任务Uart_Task、IO 口处理任务PE24_Task、串口中断程序Uart_ISR 和IO 口中断程序PE24_ISR 的部分代码如下所示:


  由于μC/OS-II是一种可剥夺型实时内核,因此当中断程序结束后要重新进行任务的调 度。任务的调度工作是由调度器完成的,μC/OS-II任务调度所花的时间是常数,与应用程序 中建立的任务数无关,因此串中中断和IO口中断后的中断恢复时间是相同的,如果将通过 优化编程使两个中断的响应时间相等,则时间间隔Δt的测量结果将更加精确。

  4 结语

  做为一种源码开放的实时操作系统,μC/OS-II在计算机检测与控制等领域得到了广泛应 用。本文提出并实现了基于ARM嵌入式处理器和μC/OS-II的Modbus协议测试系统。实验结 果表明,测试系统实时性好、可靠性高,能很好地满足Modbus设备的开发调试以及Modbus 设备运行过程中的在线检测需求。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

奈飞(Netflix)今年早些时候从数据中看到了一个令人担忧的信号:用户访问该流媒体服务的频率下降了。该公司对其用户在四周时间里观看其内容的天数进行了跟踪,并担心访问频率的下降会增加用户取消订阅的可能性。在发现这一问题之...

关键字: 信号 流媒体 TI ST

运放在没有输入的情况下,实际中仍会输出一个小电压。而这个小电压,会根据我们设置的放大倍数同等地被放大,同时,这个被放大的信号是有正、负之分的。

关键字: 运放 放大倍数 信号

9月5日上午消息,华为消费者业务CEO余承东表示,9月6日华为Mate50系列及全场景新品秋季发布会要发布的全新技术,让信号超越地面,让通信时刻相联。

关键字: 华为 Mate50系列 信号

Spesolimab 是一种单克隆抗体,可抑制白细胞介素 36 (IL-36)的信号传导,是首个获批专门用于治疗泛发性脓疱型银屑病发作的治疗药物 EFFISAYIL® 1 研究表明,治疗一周后,超过一半...

关键字: FDA GP BSP 信号

(全球TMT2022年7月22日讯)在华为全球智慧金融峰会2022期间,华为数据通信产品线总裁胡克文发表了题为“华为全新升级金融云网,构筑绿色数智金融新联接”的主题演讲,发布了全新升级的金融云网解决方案,推动银行业务云...

关键字: 华为 通信产品 信号 数据通信

关注疫情背景下女性科创力量,推动科学创新绽放"她"风采 北京2022年7月19日 /美通社/ -- 由凤凰网主办、欧莱雅鼎力支持的首届"她势界·凤凰网女性影响力大赏...

关键字: BSP 创始人 信号 成功率

普克鲁胺可发挥抗炎作用和降低急性肺损伤 苏州2022年7月18日 /美通社/ -- 近日,开拓药业研发团队于预印版期刊bioRxiv在线发表了题为"Inhibitory effects of GT0918 o...

关键字: RS 信号 NRF ACE2

(全球TMT2022年7月12日讯)经过专业研究人员4年的研究和开发,在RIAM、CNC、BPI和INRIA的支持下,SWEALINK提供了唯一的证人声音安全保护工具,即一种名为VOX PROTECT的插件。...

关键字: PROTECT 信号 LINK PI

团队作战、有趣玩法、劲爆福利点燃盛夏 上海2022年5月31日 /美通社/ -- 即日起至6月20日,希尔顿集团以"团长集结,嗨囤盛夏"为主题,汇聚海量品质旅游产品和力度十足的优惠活动,并且携手多位...

关键字: BSP 信号 微信

摘要:直流断路器是保障柔性直流输电系统可靠性的重要装备,IGBT作为断路器的关键器件对断路器整机分断能力有着重要影响。现对直流断路器用IGBT的主要工作特征做简要阐述,根据实际工况搭建了测试系统,对器件进行超额定值的大电...

关键字: IGBT 关断特性 测试系统

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭