MSP430多处理器之间的通信方式及协议_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、msp430多处理器之间的通信方式及协议在系统中,多处理器是指多个相同类型或者不同类型的单片机配合处理同一个系统的不同工作。它们之间必需具备一定的数据交换和配合处理能力,共同完成一个系统化的工作。不同处理器之间可以采纳数据交换方式、并行方式、串行总线方式举行通信。其中,数据交换方式又可以称为分享内存交换方式;串行总线方式又可以分为单总线方式、之间的通信方式和uart方式。 1 多处理器msp430是一款超低功耗的混合信号控制器,具有16位risc结构,有着丰盛的片内外设,主要包括有、定时器、硬件乘法器、液晶驱动器、i0端口、串口(usart)等等,还集成有64 kb的flase-rom和2kb

2、的ram。其功能强大,应用场合广泛。但是在大型复杂的场合或者实时性要求较高的场合,用法一个处理器处理全部的业务,总是显得有些不足。引入多个msp430处理器配合工作的模式,可以提高系统的实时性、牢靠性和适用性。在多数场合,msp430无须为每个处理器扩展flashrom,也无须扩展ram,采纳分享内存的数据交换方式组成多处理器系统并非最佳挑选。此外,msp430包括有两个串口(usart),在msp430的应用中,可以把两组串行端口中的一个供外部通信用法,另一个串行端口供内部通信用法。采纳串行总线中的串行通信方式组成多处理器系统是比较抱负的挑选。2 技术要点2.1 msp430多处理器组成ms

3、p430具有两个串行端口(usart),可以用法其中的一个作为多处理器之间的通信端口。因为串行通信的架构限制,msp430采纳uart串行通信模式组成的多处理器系统,必需建立一个主处理器和若干从处理器。主处理器的txd端与全部从处理器的rxd端相连,全部从处理器的txd端与主处理器的rxd端相连。msp43o多处理器拓扑结构1所示。多处理器拓扑结构在这个结构中,主处理器通过txd端发送出命令报文,传输到从处理器的rxd接收端;从处理器对命令报文举行解包并且对这个命令报文举行响应。从处理器的响应报文通过txd发送到主处理器的rxd接收端,主处理器猎取响应报文确认命令是否被正确执行。从这个结构上看

4、,主处理器可以与任何从处理器举行通信,任何从处理器也可以和主处理器举行通信,但是从处理器与从处理器之间却不行以举行挺直的通信。2.2 多处理器系统串行通信协议在多处理器系统的串行通信方式中,可以有若干种通信协议举行挑选,如modbus、brooks、工业总线协议等等。在此,可以挑选业界通用的mocbus通信协议作为处理器与处理器之间的通信协议。2.3 modbus通信协议modbus协议支持传统的rs232、rs422、rs485和以太网设备。modbus协议包括ascii、rtu、tcp等报文格式,并没有规定物理层。此协议定义了控制器能够熟悉和用法的消息结构,而不管它们是经过何种网络举行通信

5、的。modbtls的ascii、rtu协议规定了消息和数据的结构、指令和就答的方式,数据通信采纳masterslave方式。master端发出数据哀求消息,slave端接收到正确消息后就可以发送数据到mastez端,以响应哀求;master端也可以挺直发消息修改slave端的数据,实现双向读写。2.4 modbus在多处理器系统中的报文格式因为是一个主服务器对应多个从处理器的系统,处理器与处理器之间的报文传输必需明确标注目标地址和源地址,以免不相干的处理器之间举行误导操作。除此以外,为了提高主处理器的处理能力,同时避开不同处理器存在报文相应速度差,以及不同命令任务之间存在处理量差异的问题,必需

6、采纳异步通信模式举行通信。要满足异步通信模式,必需在报文中对每次的通信操作加注哀求报文的16位标示(可以称之为句柄),同时对这些句柄举行记录。2.4.1 数据读取哀求报文格式源地址:主处理器地址。目标地址:命令目的地地址(从处理器)。句柄:命令哀求标示号。功能代码:操作命令代码。起始地址:读取从处理器数据寄存器的起始地址。字节数:操作所涉及的寄存器字。校验码:crc校验码或者lrc校验码。2.4.2 数据读取应答报文格式源地址:从处理器地址。目标地址:主处理器地址。句柄:命令哀求标示号。功能代码:操作命令代码。数据字节数:操作所涉及的寄存器字节数。数据1至数据n:数据。校验码:crc校验码或者

7、lrc校验码。其中,应答报文中的目标地址等价于哀求报文中的源地址,应答报文中的源地址等价于哀求报文中的目标地址。2.5 校验码在modbus中,通用的校验方式是ascii协议方式采纳lrc校验方式,rtu协议方式采纳crc校验方式。2.5.1 lrc校验lrc校验比较容易。它在ascii协议中用法,检测了消息域中除开头的冒号及结束的回车换行号外的内容。它仅仅是把每一个需要传输的数据按字节叠加后取反加1即可。下面是它的c代码:byte getcheckcode(const char*psendbuf,int nend) 获得校验码byte bylrc=o。char pbuf4;int ndata

8、=0for(i=1;i i2.5.2 crc校验crc是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中延续的8位字节和当前寄存器中的值举行处理。仅每个字符中的8位数据对crc有效,起始位和停止位以及奇偶校验位均无效。 icrc产生过程中,每个8位字符都单独和寄存器内容相或(or),结果向最低有效位方向移动,最高有效位以0填充。lsb被提取出来检测。假如lsb为1,寄存器单独和预置的值“或”一下;假如lsb为o,则不举行。囫囵过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相“或”。终于寄存器中的值,是消息中全部字节都执行之后的crc值。 icrc添加

9、到消息中时,低字节先加入,然后高字节加入。下面是它的c代码:word getcheckcode(const char*psendbuf,int nend) 获得校验码word wcrc=word(0xffff);for(int i=o;i);for(intj=o;j>=l;wcrc一oxa00l:elsewcrc>>=1;retilril wcrc: i i3 报文示范modbus包含ascii和rtu两种报文格式。rtu报文较短,但是没有边界定义;ascii报文较长,但是边界明白。在多处理器通信之中,因为通信距离很短,干扰较小,因此可以挑选较高的通信速率。通信速率提高了,报文长度较长对通信的影响不大,因此可以挑选ascii报文格式举行通信。modbus的ascii读取哀求报文格式如下:modbus 的 ascii读取

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论