发明名称 用DSP实现MODBUS异步串行通信协议的方法
摘要 本发明公开一种用DSP实现MODBUS异步串行通信协议的方法,它是一种基于TI公司TMS320C2000系列DSP芯片的MODBUS异步串行通信协议实现方案。MODBUS协议是OSI模型第7层上的应用层报文传输协议。TI公司的TMS320C2000系列DSP芯片具有多个功能模块,本方案主要使用的有:SCI串行通信接口、CPU定时器、PIE外设中断系统。SCI串行通信接口实现数据链路层的数据收发,CPU定时器用于帧同步处理,PIE外设中断系统是必备的功能。本方案通过软件在DSP上实现了满足MODBUS异步串行通信协议的从站功能,最高波特率可达115200bps,对于如工业控制领域将DSP作为主控制器的设备,可以满足与PC以及触摸屏等的通信需求,达到现场组网的目的。
申请公布号 CN103645714B 申请公布日期 2015.11.11
申请号 CN201310675197.4 申请日期 2013.12.11
申请人 东方电气集团东方汽轮机有限公司;四川东方电气自动控制工程有限公司 发明人 石方舟;闵泽生;陈建国;蒋驰雷;王敏;张甜甜;熊向杰;傅炜娜
分类号 G05B19/418(2006.01)I 主分类号 G05B19/418(2006.01)I
代理机构 成都蓉信三星专利事务所(普通合伙) 51106 代理人 刘克勤;段雪茵
主权项  一种用DSP实现MODBUS异步串行通信协议的方法,包括:‑通信数据收发方法报文采用RTU帧格式,8个数据位,2个停止位,无奇偶校验位;波特率设置为115200bps;DSP接收报文采用SCI中断方式,使能FIFO及其中断函数,中断等级设置为1,即每一个数据触发接收中断函数,保证接收数据可靠;发送报文采用查询方式,在CPU有空闲时完成发送;CPU定时器0用于主程序运行,采用中断优先级较低的CPU定时器1通过其定时中断函数完成计时功能;‑报文解析方法设计报文解析函数,对标准MODBUS协议的各种不同功能码的报文进行解析,解析函数放在主循环程序中,利用主程序空闲时间进行解析;每个正常报文解析之后,发送相应的响应报文,响应报文放入发送缓冲区,等待系统空闲时发送回主站;每个报文最后以2个字节的CRC结束,该CRC通过对整个报文进行循环冗长检测方法得出,报文接收方以此作为判据来判断接收报文是否正确;所述CRC码先传输低字节,再传输高字节;其特征在于,所述通信数据收发方法的步骤是:将整个串行通信功能划分为空闲态、接收态、控制等待态、接收结束态、发送态、发送结束态;当系统初始化后,串行功能处于空闲状态,此时可以接收也可以发送;在空闲态进入了接收数据中断程序,则标志着一个新的报文帧的开始,状态转换为接收态;在接收状态如果出现了超时状态,则进入控制等待态;在控制等待态进行CRC校验及子节点地址检测,如有误,则标记为帧错误,如正确,则继续等待;等待到出现超时事件,转换为接收结束态,此时如果帧正确,则进行帧解析步骤,如果出现帧错误,则抛弃;之后进入空闲态,一个完整的接收流程完成;在空闲态时,如果发送报文缓冲区达到了发送条件,并且此时系统处于空闲周期,则进入发送状态;发送采用查询方式,在控制周期空闲时间完成,发送完毕后,又进入空闲态,发送流程完成。
地址 618000 四川省德阳市高新技术产业园区金沙江西路666号