预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

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