当前位置:首页 > 通信技术 > 通信技术
[导读]引言 在嵌入式系统中,多个孤立节点之间的通信越来越重要,尤其是物联网时代的到来,多节点间通信已经成为必不可少的功能。由此出现了许多通信手段,如RS-232、RS-485、CAN总线、ZigBee等,综合考虑性能和成本,

引言
    在嵌入式系统中,多个孤立节点之间的通信越来越重要,尤其是物联网时代的到来,多节点间通信已经成为必不可少的功能。由此出现了许多通信手段,如RS-232、RS-485、CAN总线、ZigBee等,综合考虑性能和成本,RS-485通信无疑是性价比最高的通信方式。因此探究高效、实用的多机通信方案具有重大的意义。

1 系统框图
   
RS-485多机通信结构图如图1所示。若干个RS-485节点通过总线连接,由网关节点轮询访问索要数据,每个网关节点可以动态地配置IP地址,以便上位机可以通过以太网控制网关节点,从而获得每个RS-485终端节点的数据。图1中C节点为控制节点,具有RS-485通信功能,T节点为网关节点,除了RS-485功能外,还具有以太网功能,其作用就是将C节点的数据通过以太网功能传送给上位机。



2 硬件设计
   
本文采用新唐科技公司的Cortex-M054探究RS-485多机通信协议。Cortex-M054有两个UART,均可以配置成RS-485模式,此时Cortex-M054通过RTSX引脚自动控制RS-485通信方向。
    RS-485通过差分传输,A和B两根信号线铰链在一起来抵消各自的干扰。当A、B信号的电压差大于200mV时,视为逻辑1;当B、A信号的电压差大于200 mV时,视为逻辑0。
    RS-485硬件原理图如图2所示。整套RS-485电路独立供电,通过光电耦合器TLP781B+,与系统其他部件分开,以此来隔离干扰。和CAN总线相同,在机群的两端(第一个节点和最后一个节点),必须加上匹配电阻,吸收反射信号,大小为75 Ω左右。中间节点则不需要如此,因此留出了R1的位置,当节点位于机群两端的时候,则焊接上R1,这种方式大大地增强了电路的灵活性。


    考虑电路的安全性,添加了TVS管,从而达到抗雷击的效果。热敏电阻相当于自恢复的保险丝,当电流过大时,它的阻值会变大,起到保护电路的作用。

3 软件协议
3.1 协议格式
    Modbus协议按功能可以划分为:地址码、功能码、数据码、CRC校验码。而在RTU方式下,采用CRC循环冗余校验,具体格式如图3所示。


    Modbus协议长度根据用户需求自己设定,地址码标识终端地址,即和网关节点通信的从机地址。功能码则是主机告诉从机要执行什么功能。数据码长度由用户自己确定,最后根据前3个功能字段,生成两个字节的CRC校验码,用来验证前面的字段是否存在传输错误。
3.2 CRC生成算法
    CRC算法分为静态和动态两种,静态的适合片内RAM非常有限的MCU,而动态的适合RAM空间相对比较宽裕的MCU。CRC校验码生成步骤如下:
    ①初始化寄存器内容为0xffff。
    ②提取第一个字节数据和寄存器内容相异或。
    ③检测最低有效位(LSB),如果LSB为1,寄存器单独和预置值异或;如果LSB为0,则不进行任何操作,然后将结果向LSB方向移动,最高有效位以0填充。
    ④重复第③步8次,直到最后一位(第8位)完成。
    ⑤提取下一个8位字节,重复步骤③、④的操作,等待所有字段都执行完,最终寄存器中的值就是所求的CRC校验码。
    上述步骤中,如果预置值在整个过程中不变,则为静态的CRC校验;在动态的CRC校验中,存在一个动态表,预置值每次都根据动态表变化,所以准确性更高,而动态表要开辟一个较大的空间来存储。所以,根据MCU的RAM大小决定使用动态校验还是静态校验。算法结束后,寄存器中存人的就是前N个字节的CRC校验码,运用该算法,不需要事先知道协议的整体长度,最后都同样生成两个字节长度的校验码,故可移植性好、通用性强。
3.3 自动地址识别模式通信
   
自动地址识别模式是RS-485经典模式,通过设置Cortex-M054的状态寄存器,可使UART工作在此模式下。节点在接收到地址字节时,判断地址字节数据是否与UA_ALT_CSR[ADDR_MATCH]值相匹配,如果匹配,表示网关节点要与此终端通信,故接收下面网关节点发送的所有数据字节。同时,地址字节和数据字节都会被存入UART的FIFO中,否则忽略所有字节,既不产生中断,也不存入FIFO,直到匹配。
    串口通信中由起始位、数据位、奇偶校验位、停止位4部分组成。当奇偶校验位为0时,表示传输的是数据字节;当它为1时,表示传输的是地址字节。Cortex—M054的UA_ALT_CSR是一个32位的寄存器,其ADDR_MATCH用8位来表示,故自动地址识别模式最大从机数只支持256个节点。它的优点是:由于RS-485所有从机挂载在一根总线上,故网关节点发送数据时,只有地址与自己匹配的节点才会响应,其他节点可以正常执行自己原先的任务而不被打扰,系统整体效率高。缺点是从机只能被主机轮询时才能发送信息,不能主动和主机通信;一个总线上只能挂载256个节点。
3.4 普通模式通信
   
普通模式可以配置为接收所有数据,也可以选择性地忽略数据,直到接收到地址字节。为了更加灵活地利用协议通信,将其设置为接收所有数据,即只要网关节点向总线发送数据,那么总线上的所有节点都会收到数据,再根据协议解析内容执行相应的动作,接地流程图如图4所示。


    Cortex—M054内部有4 KB的Data Flash给用户存储数据,故将节点的地址存入Flash中。当系统上电复位后,先从Flash中读出节点的地址,存入全局变量address中。当收到数据包之后,进行CRC校验,如果正确就接收,再根据协议解析地址地段,其值与address比较,以此判定此包是否属于自己。
    自动地址识别模式是由芯片自动筛选地址,而此处需要软件判断。因此,地址长度可以由用户自己设定。
3.4.1 数据混乱
   
上述方法存在数据混乱的隐患。如果网关节点与终端节点通信过程都是用N个字节进行,那么不会出现数据紊乱问题。但若假设网关节点发送命令用N个字节,而终端节点向网关节点回复数据时,用M(M>N)个字节,此时总线上的其他终端节点都会收到这M个字节。此时,会认为是网关节点发出的,所以只解析前N个字节的数据,那么在FIFO中就剩下了(M—N)个字节,即此时FIFO中并不为空。若网关节点此时再与其他任意一个终端节点通信时,程序会默认先读出残留的(M—N)个字节数据,就会造成数据紊乱,网关节点再难与其他节点正常通信。
    解决方法是在每次有数据进入FIFO中后,触发中断,将所有的数据都读出,而只解析前N个字节。因为在整个RS-485系统中,只有网关节点才能与终端节点通信,各个终端节点之间不可以通信,而网关节点与终端节点通信是N个字节。一次读空FIFO的目的就是清空FIFO中的无效数据。
3.4.2 改进型RS-485协议
   
RS-485通信的最大缺点就是主从式的通信方式,从机只有在收到主机的命令后才可以与之通信。而CAN总线的每个节点可以在任意时刻接收和发送数据,通过其仲裁体制,避免数据冲突,但是CAN总线的成本相对较高,对于实时性和安全性要求不高的场合,不适宜用CAN总线通信。
    借鉴CSMA/CD协议,本文提出改进型的通信方式。设置全局变量nesting,如果进入一次RS-485中断,则nesting加1。在终端需要向网关节点发送数据时,置nesting为0,延迟(address×10)ms;如果总线上没有数据通信,nesting为0,此时节点可以主动向网关节点发送数据;否则,表示总线上繁忙,则继续延迟(address)ms。
    尝试K次,K的大小根据用户需求设定。若此终端节点已经在网关节点的轮询范围之内,终端向网关发送的数据为紧急事件包,则K的值应该尽量小;若主动发送失败,可以等待节点被轮询之时,再将此数据发送出去。若此终端节点不在网关节点的轮询范围之内,是新加入的节点,则主动发送信息的目的是告诉网关,自己是新节点,需要加入总线系统中,此时K值应该尽量大,以保证新节点能够不在上位机的协助下,自动地加入总线系统中,提高系统的灵活性。终端发送流程图如5所示。


    网关节点不能轮循完一遍之后,又立即进行下一次轮询。这样,总线上一直都会是忙碌状态。网关节点必须在轮询完一次之后,暂停L秒,这个空隙时间就是留给终端主动向网关发送数据。L不宜过大,否则会大大降低系统整体效率,L的选取与系统共有多少终端节点且每个终端节点与网关节点通信时间有关。
    使用普通模式进行通信,优点是RS-485通信应用灵活,可以支持更多的节点挂载在总线上;可以改进RS-485通信方式,自动地址识别模式无法监听总线是否繁忙。缺点是各个节点的工作量增大,将频繁解析指令,系统整体效率降低。

结语
   
在使用RS-485方式通信时,选取哪种方式进行通信,需要根据不同场合而定。传统的自动地址识别模式,适用于严格的主从通信系统,可靠性高,系统整体效率高;而普通模式灵活性较好,但是系统整体效率会降低。所以,要因地制宜,选择当前场合最适合的方式。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭