用于DSP/BIOS的MODBUS消息帧接收方法技术

技术编号:14129819 阅读:193 留言:0更新日期:2016-12-09 18:15
本发明专利技术公开了一种用于DSP/BIOS的MODBUS消息帧接收方法,基于DSP/BIOS软件平台实现,包括消息帧接收流程和消息帧处理流程,其中消息帧接收流程选择SCI硬件中断线程实现,消息帧处理流程选择周期软中断线程实现。消息帧处理周期软中断线程计时时钟由系统时钟驱动,并使其时钟周期值等于MODBUS消息帧间距时间,当计时时钟累加直至等于时钟周期时,进入消息帧处理软中断线程。本发明专利技术采用系统时钟取代现有技术中以定时器确定字符间隔时间并准确区分两消息帧的方法,可有效节省微处理器的硬件资源,减低自动化控制系统对微处理器的外设资源需求。

【技术实现步骤摘要】

本专利技术涉及MODBUS消息帧接收方法,具体涉及一种用于DSP/BIOS的MODBUS消息帧接收方法
技术介绍
Modbus是由Modicon在1979年专利技术的全球第一个真正用于工业现场的总线协议,已经成为工业领域通信协议标准,也得到广泛应用。确定通讯线路的空闲时间并由此准确区分两消息帧,一直是MODBUS通讯过程必须解决的重要问题。现有技术中,微处理器和MODBUS设备的通讯全都采用定时器中断的方法来实现,即令定时器定时值等于消息帧帧间时间间距,在每次进入SCI中断程序时重置定时器的当前计时值,当进入定时器中断程序时,就说明当前消息帧已完成传输,此技术可见于《煤矿机械》2013年发表的《基于STM32F103和MODBUS的矿用DTU测试系统设计》、王谛的《基于MODBUS协议的PC机与dsPIC6014处理器的通讯》、《实验室研究与探索》2012年发表的《基于Modbus协议的S7-200系列PLC与单片机主从通信研究》等。这种方法虽然简单并容易实现,但占用了微处理器宝贵的定时器资源,使其硬件资源得不到有效利用,也提高了自动控制系统对微处理器的外设资源需求。
技术实现思路
为了解决上述现有的MODBUS通讯技术占用微处理器定时器资源的问题,本专利技术提供了一种用于DSP/BIOS的MODBUS消息帧接收方法。为实现上述目的,本专利技术采用下述技术方法:一种用于DSP/BIOS的MODBUS消息帧接收方法,基于DSP/BIOS软件平台实现,包括消息帧接收流程和消息帧处理流程,所述消息帧接收流程选择SCI硬件中断线程实现,所述消息帧处理流程选择周期软中断线程实现。进一步地,所述的SCI硬件中断线程具体运行过程为:(1)串口接收到1字符数据后进入SCI硬件中断线程;(2)重置消息帧处理周期软中断线程计时时钟;(3)读取接收到的数据,并保存到接收帧数组中当前成员号值指向的成员;(4)接收帧数组当前成员号加1;(5)从SCI硬件中断线程返回;进一步地,消息帧处理周期软中断线程计时时钟由系统时钟驱动。进一步地,消息帧处理周期软中断线程时钟周期为传输3.5字符数据所需的时间。进一步地,消息帧处理周期软中断线程采用单次运行模式。进一步地,所述的消息帧处理周期软中断线程具体运行过程为:(1)消息帧处理周期软中断线程计时时钟值等于设定的时钟周期时进入运行;(2)接收帧数组当前成员号清零;(3)数据处理;(4)发送应答消息帧;(5)从消息帧处理周期软中断线程返回。与现有技术相比,本专利技术采用系统时钟取代现有技术中以定时器确定字符间隔时间并准确区分两消息帧的方法,可有效节省微处理器的硬件资源,降低自动化控制系统对微处理器的外设资源需求。附图说明图1为本专利技术实施例的消息帧接收流程图;图2为本专利技术实施例的消息帧处理流程图;图3为具体实施方式中TMS320F28335型DSP与MODBUS设备的连接图。具体实施方式下面结合附图和实例对本专利技术进一步说明。如图1和图2所示,一种用于DSP/BIOS的MODBUS消息帧接收方法,基于DSP/BIOS软件平台实现,包括消息帧接收流程和消息帧处理流程,所述消息帧接收流程选择SCI硬件中断线程实现,所述消息帧处理流程选择周期软中断线程实现。具体而言,所述的SCI硬件中断线程具体运行过程为:(1)串口接收到1字符数据后进入SCI硬件中断线程;(2)重置消息帧处理周期软中断线程计时时钟;(3)读取接收到的数据,并保存到接收帧数组中当前成员号值指向的成员;(4)接收帧数组当前成员号加1;(5)从SCI硬件中断线程返回。具体而言,消息帧处理周期软中断线程计时时钟由系统时钟驱动。具体而言,消息帧处理周期软中断线程时钟周期为传输3.5字符数据所需的时间。具体而言,消息帧处理周期软中断线程采用单次运行模式。具体而言,所述的消息帧处理周期软中断线程具体运行过程为:(1)消息帧处理周期软中断线程计时时钟值等于设定的时钟周期时进入运行;(2)接收帧数组当前成员号清零;(3)数据处理;(4)发送应答消息帧;(5)从消息帧处理周期软中断线程返回。DSP是数字信号处理器的简称,本实例选用TI公司生产的C2000系列、型号为TMS320F28335的DSP处理器,TMS320F28335与MODBUS设备通过RS232连接(见图3),波特率选用9600b/s,通讯模式采用MODBUS RTU,数据传输格式为1bit起始位、8bit数据位、1bit停止位、无校验位。DSP/BIOS是TI公司特别为其TMS320C6000TM,TMS320C5000TM和TMS320C28xTM系列DSP平台所设计开发的一个尺寸可裁剪的实时多任务操作系统内核。DSP支持四种不同优先级的线程,按照优先级从高到低顺序排列,分别是硬件中断(HWI)、软件中断(SWI)、任务(TSK)和后台线程(IDL)。周期函数(PRD)是一种特殊的软件中断,当其计时时钟等于设定的时钟周期值时进入就绪状态,其实例主要配置参数有:(1)period:周期函数时钟周期值,周期函数当前时钟计时值达到设定的时钟周期值时进入就绪状态,计时时钟可由系统时钟驱动,或调用PRD_tick函数后加1;(2)mode:周期函数运行模式,有连续运行(continuous)和单次触发(one-shot)两种。本专利技术主要使用到的API函数及其功能如下:(1)PRD_start:用于启动一个周期函数的计时时钟,该周期函数在启动并等待设定的时钟周期后进入运行。如果在周期函数当前时钟计时值达到设定的时钟周期值前再次调用PRD_start,当前时钟计数值从零重新开始计时。在TMS320F28335的DSP/BIOS程序中,将消息帧接收流程创建为SCI硬件中断线程,消息帧处理流程创建为周期软中断线程。其中本专利技术的实现需要设置消息帧处理线程为单次触发模式,且其时钟周期值(period)设置为MODBUS通讯中两消息帧或数据包之间的最小时间间隔,即3.5字符数据传输时间,其计时时钟由系统时钟驱动。在波特率为9600b/s、传输格式为10bit,消息帧处理周期软中断线程时钟周期值如下: 3.5 × 10 9600 × 1000 ≈ 3.7 m s , ]]>当串口接收到MODBUS设备传输的1字符数据时,DSP/BIOS程序进入消息帧接收线程。在该线程中,首先调用PRD_start函数启动消息帧处理PRD线程的计时时钟,然后从SCI接收寄存器中读取数据并保存到接收帧数组,在令接收帧数组当前成员号加1后返回。在同一个数据包的传输过程中,DSP/BIOS程序不断重复以上过程。由于一个数据包中两字符数据传输间隔小于消息帧处理周期软中断线程的时钟周期值,并且每次进入SCI硬件中断线程时调用PRD_start复位消息帧处理周期软中断线程的当前计时时钟值,因此DSP/BIOS程序不会进入消息帧处理周期软中断线程。而当前消息帧传输完毕后,通讯线空闲时间大于消息帧处理周期软中断线程的时钟周期值,该线程在当前计时时钟达到时钟周本文档来自技高网...
用于DSP/BIOS的MODBUS消息帧接收方法

【技术保护点】
一种用于DSP/BIOS的MODBUS消息帧接收方法,基于DSP/BIOS软件平台实现,包括消息帧接收流程和消息帧处理流程,其特征在于:消息帧接收流程选择SCI硬件中断线程实现,消息帧处理流程选择周期软中断线程实现。

【技术特征摘要】
1.一种用于DSP/BIOS的MODBUS消息帧接收方法,基于DSP/BIOS软件平台实现,包括消息帧接收流程和消息帧处理流程,其特征在于:消息帧接收流程选择SCI硬件中断线程实现,消息帧处理流程选择周期软中断线程实现。2.根据权利要求1所述的一种用于DSP/BIOS的MODBUS消息帧接收方法,其特征在于,所述的SCI硬件中断线程具体运行过程为:(1)串口接收到1字符数据后进入SCI硬件中断线程;(2)重置消息帧处理周期软中断线程计时时钟;(3)读取接收到的数据,并保存到接收帧数组中当前成员号值指向的成员;(4)接收帧数组当前成员号加1;(5)从SCI硬件中断线程返回。3.根据权利要求1所述的用于DSP/BIOS的MODBUS消息帧接收方...

【专利技术属性】
技术研发人员:李伟光万好孙佳正庄义钦刘志洋郑东泽
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1