当前位置:首页 > 通信技术 > 通信技术
[导读]引言 Cortex-M3是ARM公司推出的32位处理器,使用了最新一代的ARMv7架构,具有高性能、低功耗和低成本的优点。对那些对功耗与成本敏感、但又要求较高性能的嵌入式应用来说,Correx-M3无疑是最佳解决方案;而对成

引言
    Cortex-M3是ARM公司推出的32位处理器,使用了最新一代的ARMv7架构,具有高性能、低功耗和低成本的优点。对那些对功耗与成本敏感、但又要求较高性能的嵌入式应用来说,Correx-M3无疑是最佳解决方案;而对成本要求苛刻、运算能力要求不高的设备来说,嵌入成熟稳定的8051处理器,已经成为了业内的流行做法。目前,越来越多的嵌入式系统同时使用了上述两种MCU,因此如何使Cortex-M3与8051之间可以高效地进行信息交互,是实现设计目标的关键。

1 方案设计
    要进行信息交互,离不开物理接口。在嵌入式应用中,目前常用的接口有UART、SPI和I2C等串行接口。UART接口只需两根数据线就可以工作,时序控制简单,大部分设备都整合了这种接口。而且,经过电平转换后UART的TTL电平可以转换成RS232电平,RS232接口是计算机标准配置的通信接口,可以通过超级终端查看串口的数据,便于使用PC机对线路进行检测分析。因此,本设计采用UART接口作为Cortex-M3与C51之间的通信接口。
    考虑到各种需求,本文设计了一种基于UART接口的,用于Cortex-M3和C51之间的通信协议,使Cortex-M3与C51之间可以高效地进行信息交互。当两个MCU之间需要进行通信的时候,发送方把原始数据下放给通信协议,通信协议按照特定格式把数据打包,通过UART接口发送给对方。接收方收到数据时,MCU运行相应的通信协议,把数据解包,就可以得到发送方的原始数据,将其交付给上层程序。体系结构如图1所示。


    如果使用其他串行接口,原理大体相同,只需对硬件作相应改动,即对接口控制模块稍作修改即可投入使用。
    下面以实际工程中某种多媒体系统为例详细说明。该系统采用了以Cortex-M3为内核的STM32处理器和嵌入了C51核的MST776视频处理芯片,使用UART接口进行通信。

2 具体实现
2.1 硬件设置
    具体的器件不同,UART的工作方式也有所区别,主要表现在波特率、停止位、数据字长度等参数上。当两个器件用UART连接时,所有参数必须完全一致,否则通信很容易出错。在此,要特别注意波特率的设置:当线路质量好的时候,波特率可以设置得高点,以获得较高的传输速率;线路质量差的时候,就要减小波特率,以降低误码率。
    本设计中,STM32与MST776都整合了UART接口,只需配置少量电阻;同时,线缆长度不超过20 cm,使用环境的电磁干扰小,波特率可以设置为38 400bps,甚至更高。另外,考虑到C51的处理速度较低,因此波特率不应设置得太高,避免造成C51侧数据溢出,进而造成死机。
    本设计只需使用两根数据线来实现两个MCU之间的互连,把STM32上选定的UART接口的TX与对端的UART接口的RX相连,把RX与对端的UART接口的TX相连。
2.2 软件设计
2.2.1数据帧解析
    Cortex-M3侧和C51侧采用同样的数据帧格式,以简化编程的难度,增强程序的可移植性。数据帧由起始标识符、数据长度、类型ID、通信内容、循环冗余校验码构成,如图2所示。


    (1)起始标识符
    起始标识符的作用主要是用于定界,把不同的数据帧在一连串的数据中分离开来。起始标识符内的数据不能与数据帧中可能出现的任何数据相同,否则会引起歧义,导致定界失败,造成数据错误。在本例中,为2个字节,选用0xFF+0xAA,因为该组合与其他数据具有排他性,不会引起歧义。
    (2)数据长度
    数据长度的计算方法为,从该位开始,到最后一个数据位结束,也就是CRC校验位之前的一个字节。虽然使用Length位可以表示很长的数据帧,但在应用中应尽量采用短帧,以避免各种干扰因素造成少数数据位出错,导致大量数据无效,影响通信效率。同时,应该设置一个最大发送长度,以便设置超时重传计时器的值。本例采用1个字节,最大帧长为260个字节。
    (3)类型ID
    根据实际需要,类型ID可以采用1个或多个字节,用于表示该数据帧的作用类型。本例中,采用1个字节,可以表示256种作用类型,例如设备参数帧(如音量)、线路探测帧或应答帧。
    (4)通信内容
    通信内容与类型ID结合,表达特定意义。相同的Data,但ID不同的话,表达的信息不一样。根据不同的ID,Data的长度可能会有所不同。
    (5)循环冗余校验码
    循环冗余校验码用于校验接收到的数据是否在传输过程中出错。本例中采用CRC-16算法,占2个字节,对从起始标识符开始到最后一个通信内容位的所有数据进行运算,把得到的结果附在最后。
2.2.2 收发流程
    发送流程:将要发送的数据添加起始标识符和长度后,计算CRC-16校验码,附在最后,形成一个完整的数据帧,然后通过UART发送出去。发送完毕后启动超时重传计时器。
    接收流程:当接收到一个字节的数据时,根据系统状态采取不同的操作。当数据上交后,上层程序根据类型ID和通信内容来作出相应的响应。具体流程如图3所示。


2.2.3 线路检测机制
    虽然本例中的UART接口是一种有线通信,而且线缆长度不超过20 cm,但仍有可能出现插口松脱、线缆铜芯断裂等情况,造成线路中断。对于转换成RS232电平的应用,虽然RS232的最大传输距离不超过15 m,但如果在恶劣的环境中使用,仍无法完全避免线路发生中断。因
此,有效的线路检测机制是必需的。
    本设计中,当本端系统状态为Null时,每间隔1 s就发送一个线路探测帧,类型ID=0x00,通信内容=0x55。同时,如果本端在5 s内收不到任何新数据或者线路探测帧,则表明线路中断,向上层程序发送线路中断报告。对于需要交互秒时间信息的应用,线路探测帧可以省略,只检测秒时间信息就可以达到线路探测的目的。
2.2.4 校正机制
    因为串行通信普遍存在误码的问题,因此简单有效的校正机制是必须的。由于采用的是点到点的串行接口,数据帧都是按照发送的先后顺序到达接收端,不会出现后一帧比前一帧早到的情况,只需要采用CRC-16和简单的ARQ机制,再加上超时重传机制,就可以提供高可靠的数据传输。
    接收方收到一个完整的数据帧之后,必须给发送方返回一个ACK帧,该帧的类型ID=0xFF。通信内容根据校验的结果有所不同:校验正确的,Data=1;校验失败的,Data=0。
    发送方发送完一个完整的数据帧之后,启动超时重传计时器。如果在计时器超时之前没有收到ACK帧,或者收到的ACK帧的Data为0,就重发上一个数据帧;当收到ACK帧之后,计时器归零。发送方只有在收到Data为1的ACK帧后,才能发送下一个数据帧。当连续超时5次时,表明线路中断,向上层程序发送线路中断报告。
    ACK帧和线路检测帧无须应答。发送这两种帧之后,无须设置超时重传计时器。
2.2.5 接口控制
    接口控制主要管理UART接口的收发,在此采用中断的方式来实现。若有数据需要发送,则必须等发送缓存为空时,才能把数据写入到发送缓存,否则会把旧的数据覆盖掉,造成数据丢失。当数据写入结束后,产生一个发送中断,通知MCU把数据通过UART接口发送出去。当收到一个数据时,UART产生一个中断信号,通知MCU把数据放入接收缓存,保存完成后清除中断信号,等待接收下一个数据。只需修改接口控制部
分,就可以适用于不同的硬件接口。

3 实验结果以及分析
    为了验证本串行通信协议的有效性,连接STM32和MST776的UART接口,在这两个MCU上运行本通信协议,并在线缆上引出两个探测点,使用MAX232芯片进行电平转换,然后接到PC机的RS232接口上,进行数据检测。通过Windows的超级终端,可以在PC机上看到UART接口收发数据的状况。同时,通过JTAG接口可以看到通信协议向上层程序交付的数据。
    实验结果表明,本通信协议工作正常,收发数据正确,校正机制和线路检测机制都工作良好。运行本通信协议后,两个MCU都没有出现数据溢出、死机等情况。这表明本文设计的串口通信协议能够实现预期的功能,令Cortex-M3与C51之间可以有效地进行信息交互。

结语
    本文基于Cortex-M3与C51之间的通信需求,设计了一种基于数据帧的通信协议,使得两个MCU间可以进行有效的信息交互。本设计已经在某型多媒体系统上得到应用,使用效果很好,表现非常稳定。本设计具有良好的可移植性和通用性,在另一个嵌入式项目中,经过对程序的少量修改,也在SPI接口上得到了应用。

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

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 信息技术
关闭
关闭