当前位置:文档之家› 串口通信协议的制定

串口通信协议的制定

竭诚为您提供优质文档/双击可除

串口通信协议的制定

篇一:串行通信协议

一、通信基础

并行通信:

通常是将数据字节的各位用多条数据线同时进行传送。

并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。

串行通信:

将数据字节分成一位一位的形式在一条传输线上逐个

地传送。

串行通信传输线少,长距离传送时成本低,可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。

1、mcu串口通信(串行):。

Rs232接口》》》

芯片max232;比特率是每秒钟传输二进制代码的位数,单位:(bps)位/秒。每秒钟传送960个字符,而每个字符

格式包含10位(1个起始位、1个停止位、8个数据位),比特率为:10位×960个/秒=9600bps。

在串行通信中,收发双方对发送或接收数据的速率要有约定。串口2条线的一个rx一个tx

spi是4线串口分别是cs(片选)clk(时钟)miso(数据输入)mosi(数据输出)串口一般是一对一接收

spi可以挂载多个spi设备,通过cs选通设备

2、spi通信:

spi(serialperipheralinterface--串行外设接口)总线系统是一种同步串行外设接口,它可以使mcu与各种外围设备以串行方式进行通信以交换信息。

spi有三个寄存器分别为:控制寄存器spcR,状态寄存器spsR,数据寄存器spdR。外围设备包括FlashRam、网络控制器、lcd显示驱动器、a/d转换器和mcu等。一般使用4条线:串行时钟线(sclk)、主机输入/从机输出数据线miso、主机输出/从机输入数据线mosi和低电平有效的从机选择线nss(有的spi接口芯片带有中断信号线int、有的spi接口芯片没有主机输出/从机输入数据线mosi)。

spi接口是在cpu和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全

双工通信,数据传输速度总体来说比i2c总线要快,速

度可达到几mbps。

(1)mosi:主器件数据输出,从器件数据输入

(2)miso:主器件数据

输入,从器件数据输出

(3)sclk:时钟信号,由主器件产生,最大为fpclk/2,从模式频率最大为fcpu/2

(4)nss:从器件使能信号,由主器件控制,有的ic会标注为cs(chipselect)

3、iic通信:

iic总线是双向、两线(scl、sda)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。

iic是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线接口。

二、ttl、Rs232、usb等电平区别

ttl:+5V等价于逻辑“1”,0V等价于逻辑“0”逻辑电平定义不同:ttl232的0是用0v表示。1是用5V表示。Rs232的0是用+3V--+15V表示,1是用-3V---15V表示。接口一般都用三根线》1:地线。2:写入。3:导出。两者不可直连,

中间需接电平转接板。

Rs232:标准Rs232电平就是你说的-3~-15V,3~15V

usb:对usb2.0,除去屏蔽层,有4根线,分别是vcc、gnd和d+、d-两根信号线。5V是usb的电源电压,给usbdevice 供电用的。信号线对于2.0,d+比d-大200mV时为1,d-比d+大200mV时为0,与ttl电平不兼容,信号传输时需要电平转换电路。Rs232转ttl就是标准Rs232电平与ttl电平的Rs232接口的转换,通常用max232芯片,Rs232一端直接接标准Rs232接口,如电脑自带的db9串口,电脑无需安装驱动;

usb转ttl则是usb接口与ttl电平的Rs232接口的转换,通常用pl2303等芯片,usb一端插电脑usb接口,注意:电脑一定要安装驱动才能和正常电脑Rs232串口一样使用;

篇二:串口通信协议

波特率:230400bps

230400(bit/s)=

23040(byte/s)=(23040/1024)kb/s=22.5(kb/s)

传输1mbyte时间大约为45.51s

一张极坐标图片数320*3*1200(byte)=1152000(byte)

根据以上速度得到传输一张图的时间为:

1152000/23040=50s

分50包发送,每包数据23040byte

控制字简介源端:

文件传输起始帧:起始控制字+文件标号+包数量+cRc ee0132cRc//文件1分50个包发送

数据帧:传输控制字+xx(第xx个数据帧)+帧长度(高8)+帧长度(低8)+数据

(n*8)+cRcecxxnum_hnum_ldata1data2…datan+cRc 结束帧:结束控制字+下一文件标号(如果没有了,则为00)+包数量(无,同样为00)+cRcea0000cRc

目的端:

文件头正确,准备接收:控制字+文件标号+FF+cRc

ec01FFcRc

文件头错误:错误控制字+文件标号+FF+cRc

数据帧接收正确:继续传输控制字+文件标号+已收到的数据帧个数xx+cRccc01xxcRc

数据帧接收错误:错误传输控制字+文件标号+已收到的数据帧个数xx+cRc收到结束帧:(继续接收)或(中断接收)控制字+文件标号+FF+cRc

继续接收下一帧

ec02FFcRc

中断接收下一帧,直接开始显示图片

ca02FFcRc

数据正常发送流程图:

相关主题