本发明专利技术涉及一种基于单片机异步串行端口多通道数据传输方法及系统,包括配置单片机异步串行端口;单片机接收第一数据;根据所述第一数据的数据地址号的个数与数据长度码是否相等判断是否对第一数据进行解析,如果相等则解析所述第一数据,否则进入下一第一数据的接收状态;根据所述第一数据的数据长度码确定相等数量的数据通道数,根据所述第一数据的数据地址号确定需要进行采集和传输的第二数据,将采集的第二数据赋值给数据通道内变量,形成通道数据;将所述通道数据生成一帧完整的报文,传输到主机。本发明专利技术实现了数据通道数始终和数据长度码保持一致,避免数据通道的浪费,减少数据的接收和处理时间,提高响应。
【技术实现步骤摘要】
一种基于单片机异步串行端口多通道数据传输方法及系统
本专利技术涉及单片机数据传输领域,特别涉及一种基于单片机异步串行端口多通道数据传输方法及系统。
技术介绍
近年来单片机技术迅猛发展,在工业控制领域广泛应用。例如:意法半导体为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核,时钟频率最大可以达到72MHZ,从闪存执行代码,STM32的功耗36mA,是32位市场上功耗最低的产品。同时STM32最多可支持5路串口,有分数波特率发生器,支持同步单线通信和半双工单线通信。STM32的串口最高可以工作在全双工模式下的115200pbs,可以满足和工业PC及触摸屏的速度要求。在数据的传输方面不仅要求高速型,而且在很多场合需要多种数据同一时刻同时传输,即多数据多通道同时传输。目前多采用根据需要的最大的数据通道数在软件中定义固定通道数的方式实现,但此方式当数据类型小于固定通道数时,不仅会造成通道的浪费,而且使数据的接收和处理时间延长。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于单片机异步串行端口多通道数据传输方法及系统,其数据通道数始终和数据长度码保持一致。本专利技术解决上述技术问题的技术方案如下:一种基于单片机异步串行端口多通道数据传输方法,包括如下步骤:步骤1,配置单片机异步串行端口;步骤2,单片机接收第一数据;步骤3,根据所述第一数据的数据地址号的个数与数据长度码是否相等判断是否对第一数据进行解析,如果相等则解析所述第一数据,执行步骤4,否则进入下一第一数据的接收状态,返回步骤2;步骤4,根据所述第一数据的数据长度码确定相等数量的数据通道数,根据所述第一数据的数据地址号确定需要进行采集和传输的第二数据,将采集的第二数据赋值给数据通道内变量,形成通道数据;步骤5,将所述通道数据生成一帧完整的报文,传输到主机。本专利技术的有益效果是:单片机接受的数据中包括数据长度码,单片机对数据进行解析中,根据数据长度码确定相等数量的数据通道数,使数据通道数始终和数据长度码保持一致,避免数据通道的浪费,减少数据的接收和处理时间,提高响应。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述第一数据还包括第一帧头、第一功能指令和第一数据校验码。进一步,所述步骤3的具体实现为:单片机接收所述第一数据,获取所述第一数据的数据长度码,开始计数所述数据地址号的个数;当所述数据地址号的个数与所述数据长度码相等时,则开始对所述第一数据进行解析;否则不对第一数据进行解析,进入下一第一数据的接收状态。进一步,所述根据第一数据的数据地址号确定需要进行采集和传输的第二数据,将所述第二数据赋值给数据通道内变量,形成通道数据的具体实现为:将收到的数据地址号通过switch语句进行匹配;如果case语句入口不等于数据地址号,则进行下一数据地址号的匹配;否则将对应变量的地址赋值给指针数组;进行匹配的次数等于数据长度码,通过for语句实现,完成所述匹配后,根据变量的地址顺序对指针数组的各个元素进行取值,按照数据地址号的顺序赋值给数据通道内变量,形成通道数据。进一步,所述步骤5的具体实现为:对所述通道数据进行校验,形成第二数据校验码,将所述第二数据校验码加于所述通道数据尾部,在通道数据前加第二帧头和第二功能指令,形成完整的报文,传输至主机。本专利技术的另一技术方案如下:一种基于单片机异步串行端口多通道数据传输系统,包括端口配置模块,第一数据接收模块,第一数据解析模块和报文生成传输模块;所述端口配置模块,其用于配置单片机异步串行端口;所述第一数据接收模块,其用于单片机接收第一数据,根据所述第一数据的数据地址号的个数与数据长度码是否相等判断是否对第一数据进行解析,如果相等则解析所述第一数据,否则进入下一第一数据的接收状态;所述第一数据解析模块,其用于根据所述第一数据的数据长度码确定相等数量的数据通道数,根据所述第一数据的数据地址号确定需要进行采集和传输的第二数据,将采集的第二数据赋值给数据通道内变量,形成通道数据;所述报文生成传输模块,其用于将所述通道数据生成一帧完整的报文,传输到主机。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述第一数据接收模块包括接收单元和处理单元;所述接收单元,其用于接收所述第一数据,获取所述第一数据的数据长度码,开始计数所述数据地址号的个数;所述处理单元,其用于判断所述数据地址号的个数与所述数据长度码是否相等,如果相等,则开始对所述第一数据进行解析;否则不对第一数据进行解析,进入下一第一数据的接收状态。进一步,所述第一数据解析模块的具体功能包括将收到的数据地址号通过switch语句进行匹配;如果case语句入口不等于数据地址号,则进行下一数据地址号的匹配;否则将对应变量的地址赋值给指针数组;进行匹配的次数等于数据长度码,通过for语句实现,完成所述匹配后,根据变量的地址顺序对指针数组的各个元素进行取值,按照数据地址号的顺序赋值给数据通道内变量,形成通道数据。进一步,所述报文生成传输模块包括校验单元、组装单元和传输单元;所述校验单元,其用于对所述通道数据进行校验,形成第二数据校验码;所述组装单元,其用于将所述第二数据校验码加于通道数据尾部,在通道数据前加第二帧头和第二功能指令,形成完整的报文;所述传输单元,其用于将完整的报文传输至主机。附图说明图1为本专利技术一种基于单片机异步串行端口多通道数据传输方法的方法流程图;图2为本专利技术一种基于单片机异步串行端口多通道数据传输系统的原理框图;图3为本专利技术一种基于单片机异步串行端口多通道数据传输系统中第一数据接收模块的原理框图;图4为本专利技术一种基于单片机异步串行端口多通道数据传输系统中报文生成传输模块的原理框图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1所示,一种基于单片机异步串行端口多通道数据传输方法,包括如下步骤:步骤1,配置单片机异步串行端口:此步骤在STM32上的具体实施是:将STM32异步串行端口配置成全双工收发模式:第一步打开异步串行端口时钟使能,GPIO时钟使能;第二步异步串行端口复位;第三步GPIO端口模式的改变,将异步串行端口接收引脚配置为浮空输入或者上拉输入,将异步串行端口发送引脚配置为推挽输出;第四步进行异步串行端口参数的初始化,设置波特率为19200,开启接收和发送的功能,数据格式为字长8位,一个停止位,无奇偶校验位,无硬件数据流控制位,为了节省中断资源,采用查询的方式判断是否有数据;第五步使能异步串行端口。步骤2,单片机接收第一数据:所述第一数据中包括数据长度码,数据地址号;所述第一数据还包括第一帧头、第一功能指令和第一数据校验码。STM32一帧数据主要由以下几个部分组成:帧头:由两个字节定义为0x780x78;功能指令:不同的指令有不同的功能,开启多通道数据传输的功能指令由一个字节定义为0x0a;数据长度码:不同的数据类型对应不同的数据长度,定义为一个字节num;数据地址号:数据地址号数目和数据长度码保持一致,数据地址号由一字节组成,最小的地址号是0x01,根据数据的多少依次递增,每次加1,最大可以表示255个地址号;数据的CRC16校验码:校验是为了检测数据本文档来自技高网...
【技术保护点】
一种基于单片机异步串行端口多通道数据传输方法,其特征在于,包括如下步骤:步骤1,配置单片机异步串行端口;步骤2,单片机接收第一数据;步骤3,根据所述第一数据的数据地址号的个数与数据长度码是否相等判断是否对第一数据进行解析,如果相等则解析所述第一数据,执行步骤4,否则进入下一第一数据的接收状态,返回步骤2;步骤4,根据所述第一数据的数据长度码确定相等数量的数据通道数,根据所述第一数据的数据地址号确定需要进行采集和传输的第二数据,将采集的第二数据赋值给数据通道内变量,形成通道数据;步骤5,将所述通道数据生成一帧完整的报文,传输到主机。
【技术特征摘要】
1.一种基于单片机异步串行端口多通道数据传输方法,其特征在于,包括如下步骤:步骤1,配置单片机异步串行端口;步骤2,单片机接收第一数据;步骤3,根据所述第一数据的数据地址号的个数与数据长度码是否相等判断是否对第一数据进行解析,如果相等则解析所述第一数据,执行步骤4,否则进入下一第一数据的接收状态,返回步骤2;步骤4,根据第一数据的数据地址号确定需要进行采集和传输的第二数据,将所述第二数据赋值给数据通道内变量,形成通道数据的具体实现为:将收到的数据地址号通过switch语句进行匹配;如果case语句入口不等于数据地址号,则进行下一数据地址号的匹配;否则将对应变量的地址赋值给指针数组;进行匹配的次数等于数据长度码,通过for语句实现,完成所述匹配后,根据变量的地址顺序对指针数组的各个元素进行取值,按照数据地址号的顺序赋值给数据通道内变量,形成通道数据;步骤5,将所述通道数据生成一帧完整的报文,传输到主机。2.根据权利要求1所述一种基于单片机异步串行端口多通道数据传输方法,其特征在于,所述第一数据还包括第一帧头、第一功能指令和第一数据校验码。3.根据权利要求2所述一种基于单片机异步串行端口多通道数据传输方法,其特征在于,步骤3的具体实现为:单片机接收所述第一数据,获取所述第一数据的数据长度码,开始计数所述数据地址号的个数;当所述数据地址号的个数与所述数据长度码相等时,则开始对所述第一数据进行解析;否则不对第一数据进行解析,进入下一第一数据的接收状态。4.根据权利要求3所述一种基于单片机异步串行端口多通道数据传输方法,其特征在于,步骤5的具体实现为:对所述通道数据进行校验,形成第二数据校验码,将所述第二数据校验码加于所述通道数据尾部,在通道数据前加第二帧头和第二功能指令,形成完整的报文,传输至主机。5.一种...
【专利技术属性】
技术研发人员:肖敏,夏亮,谭先锋,李显成,曾海,杨海滨,
申请(专利权)人:重庆华数机器人有限公司,
类型:发明
国别省市:重庆;85
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。