串口摄像头通信协议

串口摄像头说明书

一、串口摄像头介绍

1、SXH485-V1串口摄像头是一款具有视频采集和图像压缩功能的摄像头,具有130万象素CMOS摄像头,最大分辨率可达到1280×960,它是一个内含有拍摄控制、

视频捕捉、图像数据采集、图像JPEG压缩、串口通讯等功能的齐全的工业用图像采集设备。采用标准的JPEG图像压缩算法,本产品的图像输出格式与常用计算机完全兼容。同时,本产品带有可选择的红外照明功能,能够实现自动照度补偿、在黑暗的光线下仍能较好的图片质量。该摄像头的接口为标准的232接口,能够很方便和与各种计算机和嵌入式控制系统、数据传输系统相连。同时使用485接口时可以方

便控制设备接入多个摄像头。最大串口通讯速率可达115200bps。

支持的通讯速率为:4800、9600、19200、57600、115200,设备默认通讯波特率为115200,可以通过命令配置。

2、摄像头测试方法

具有485接口的摄像头连接pc进行镜头调试、参数设置的时候需要通过一个485转换器和PC的232接口连接。485数据线只需要两根线,称为A、B或485+、485-。连接的时候将摄像头的两根485数据线和转换器的两根数据线连接,转换器上的电源(+5v)和地不用连接。另外给摄像头提供一个5v电源,接到摄像头的+5V和GND端即可。注意485的数据线有正负之分,接错不会造成设备损坏,但不能正常通讯,此时交换一下即可。摄像头的电源一定不能接错,否则会烧坏摄像头。

3、基本参数

1、通讯接口,RS232或485接口,支持通讯波特率为:4800、9600、19200、57600

2、工作电压为5V-12V宽电压设计。

3、支持分辨率为:

1280×960

640×480(其中又分为高、中、低三个质量的图片)

320×240(同上)

160×160(同上)

4、配备红外灯,在拍摄时,自动点亮,以实现夜视以及省电功能。

5、摄像头应该具备自适应功能,即对外界的光线强弱具备一定的适应性,以保证在任

何情况下都能获得在该情况下所能获得的最佳质量的图片。

6、应具备低功耗工作,在低功耗模式工作电流应小于或等于10mA,正常模式工作电

流应小于或等于120mA(不启动红外灯的状态)。

二、摄像头接口协议

1、基本报文格式介绍

串口摄像头采用可以支持232或485接口进行通讯,其通讯协议保持一致。下行(到摄像头)报文的基本格式如下:

报文头:固定两个字节0X90EB,第一个字节是0XEB,第二个字节是0X90;

摄像头地址:每个摄像头都可以设定一个地址,地址范围从0-255,其中地址0保留,地址255用于广播报文。每个摄像头只处理地址和自己内部设定的地址相同的

报文,地址不等当作无效报文。

报文类型:定义具体的命令类型,主要命令见下表

0x30开始的命令主要用于分包传输协议,就是主机端没有大的缓存时可以使用这些指令。

报文长度:定义报文的数据长度,只计算命令参数部分的数据长度。

CRC校验码:从摄像头地址字节开始到命令参数结束部分数据的CRC校验码。校验码错误的报文作为无效报文丢弃。

CRC校验码计算公式:

C语言算法代码如下:

static const unsigned short crc_ta[256]={ /* CRC余式表*/

0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,

0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,

0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,

0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,

0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,

0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,

0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,

0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,

0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,

0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,

0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,

0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,

0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,

0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,

0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,

0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,

0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,

0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,

0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,

0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,

0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,

0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,

0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,

0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,

0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,

0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,

0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,

0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,

0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,

0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,

0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,

0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0

};

unsigned short cal_crc(unsigned char *ptr, unsigned short len)

{

unsigned short crc;

unsigned char da;

crc=0;

while(len--!=0) {

da=(unsigned char) (crc/256); /* 以8位二进制数的形式暂存CRC的高8位*/

crc<<=8; /* 左移8位,相当于CRC的低8位乘以*/

crc^=crc_ta[da^*ptr]; /* 高8位和当前字节相加后再查表求CRC ,再加上以前的CRC */

ptr++;

}

return(crc);

}

状态:1字节的状态字节,反映了摄像头的当前状态

2、具体命令介绍

1、测试摄像头

命令类型:0x01

命令长度:0x0002

命令参数:0x55aa

返回:

数据长度:0x0002

数据内容:0xaa55

举例:

发送到摄像头:90 eb 01 01 02 00 55 aa 00 00

返回:90 eb 01 01 02 00 aa 55 00 00

2、拍照并传输图像数据

命令类型:0x02

命令长度:0x0002

命令参数:字节1代表图像的分辨率,取值范围见下表

字节2 代表图像的压缩比,取值范围0-4,共5个等级,0时压缩比最小,图像效果最好。

返回:

注意:该上行报文取消了摄像头状态字节,该字节被图象长度的第三字节取代,该字节和数据长度两字节一起形成一个三字节的数据长度。

数据长度:压缩后图象数据的大小

数据内容:压缩后的完整jpeg数据

举例:

命令

90 eb 01 02 02 00 05 01 00 00

其中90eb 为包头,01 摄象头id, 02为拍照命令,0200 为参数长度,05为分辨率,01为压缩比,0000 为crc16。

返回拍照数据

90 eb 01 02 04 23 06 ff d8 ……..

其中的04 23 06三个字节代表照片的数据长度是394275字节,后面跟的数据。

3、设置对比度

命令类型:0x03

命令长度:0x0001

命令参数:对比度大小,对比度值以0x80为中间值上下波动。

返回:

状态字节:00

数据长度:0x0001

数据内容:设定的对比度值

4、设置亮度

命令类型:0x04

命令长度:0x0001

命令参数:亮度大小,亮度值以0x80为中间值上下波动。

返回:

状态字节:00

数据长度:0x0001

数据内容:设定的亮度值

5、拍照

命令类型:0x05

命令长度:0x0002

命令参数:字节1代表图像的分辨率,取值范围见上表

字节2 代表图像的压缩比,取值范围0-4,共5个等级,0时压缩比最小,图像效果最好。

返回:

状态字节:D7=1;标识图像数据大于64K

数据长度:0x0004

数据内容:4字节压缩后图象数据的大小

6、传输图像数据

命令类型:0x06

命令长度:0x0000

命令参数:无

返回:

状态字节:D7=1;标识图像数据大于64K,需要紧跟一个获取后续数据的报文,才可以取得完整的图象数据

数据长度:压缩后图象数据的大小

数据内容:压缩后的完整jpeg数据

7、红外灯控制

命令类型:0x08

命令长度:0x0001

命令参数:红外灯开关0x33 =打开0xCC =关闭

返回:

数据长度:0x0001

数据内容:红外灯开关值

8、修改波特率参数

命令类型:0x0a

命令长度:0x0001

命令参数:01 = 4800

02= 9600

03= 19200

04= 19200

05= 57600

06= 57600

返回:无

例:需要设置9600的波特率,命令如下:90 EB ID 0A 01 00 02 CRC1 CRC2 其它的波特率需要定制,无特别说明默认的波特率是57600,该命令修改后的波特率不会被保存,重新上电以后仍然回到原来的波特率。

9、修改波特率参数并保存

命令类型:0x0b

命令长度:0x0002

命令参数:01 = 4800

02 = 9600

03 = 19200

05 = 57600

注意:能修改4种拨特率,波特率为其他的波特率时,是不能修改波特率的。其它的波特率需要定制,无特别说明默认的波特率是57600

返回:无

例:需要设置9600的波特率,命令如下:90EB ID 0B 02 00 02 02 CRC1 CRC2 其它的波特率需要定制,无特别说明默认的波特率是57600

该命令修改后的波特率会被保存,重新上电后使用新的波特率。

10、修改摄像头ID标识

命令类型:0x0d

命令长度:0x0001

命令参数:新的ID标识号,可以取值范围为1-255

返回:

数据长度:0x0001

数据内容:新的ID号

例:需要设置ID=2时,命令如下:90 EB原来ID号0D 01 00 02 CRC1 CRC2

11、拍照并传输黑白图像数据

命令类型:0x12

命令长度:0x0002

命令参数:字节1代表图像的分辨率,取值范围见下表

字节2 代表图像的压缩比,取值范围0-4,共5个等级,0时压缩比最小,图像效果最好。

返回:

注意:该上行报文取消了摄像头状态字节,该字节被图象长度的第三字节取代,该字节和数据长度两字节一起形成一个三字节的数据长度。

数据长度:压缩后图象数据的大小

数据内容:压缩后的完整jpeg数据

举例:

90 eb 01 02 04 23 06 02 00 00

其中的04 23 06三个字节代表数据长度394275字节的数据长度

12、分包传输图像数据时请求拍照命令

命令类型:0x30

命令长度:0x0000

命令参数:无

返回:拍照成功后返回图像数据的大小,一共4个字节,低字节在前。

数据长度:0x0005

例:需要拍照时,命令如下:90 EB ID号30 00 00 CRC1 CRC2

返回:90 EB ID号30 07 00 状态字节LEN1 LEN2 LEN3 LEN4 PLEN1 1PLEN2 CRC1 CRC2

比如命令为

90 eb 01 30 00 00 00 00

返回

90 EB 01 30 07 00 00 79 36 00 00 1C 00 72 4E

其中0700 为字节长度,00为状态字节,79 36 00 00为照片数据大小,1C 00 为包的数目,72 4E 为CRC.

13、请求按分包传输图像数据

命令类型:0x31

命令长度:0x0002

命令参数:请求的图像数据包号,占两个字节,最大可达65536个数据包

返回:返回指定包的图像数据的大小

数据长度:

数据内容:图像数据

例:请求包号1的命令如下:90 EB ID号31 02 00 01 00 CRC1 CRC2

返回:90 EB ID号31 命令长度 1 命令长度 2 状态字节包号L 包号H 数据CRC1 CRC2

返回的命令长度=指定包数据+包号2字节+状态1字节,如果不是最后一个包,包数据大小就是包长度。

按分包传输图像数据时,必须先发送分包拍照命令(0x30),拍照成功后必须从0包顺序传递,不可以随机传送任意包号的数据。

14、设置分包传输图像数据时的包大小,默认是512字节

命令类型:0x32

命令长度:0x0002

命令参数:数据包大小,占两个字节,包大小必须是128的整数倍,如128 256 512 1024 2048等

返回:返回指定包的图像数据的大小

数据长度:0x0003

数据内容:新的数据包大小

例:设定512包的命令如下: 90 EB ID号32 02 00 00 02 CRC1 CRC2

返回: 90 EB ID号32 03 00 STA 00 02 CRC1 CRC2

15、设置分包拍照的默认图像分辨率

命令类型:0x34

命令长度:0x0001

命令参数:图像分辨率代码,见下表

返回:返回指定包的图像数据的大小

数据长度:0x0002

数据内容:新的数据包大小

例:设定640×480的命令如下:90 EB ID号34 01 00 05 CRC1 CRC2

返回:90 EB ID号34 02 00 STA 05 CRC1 CRC2

图示2:分包传输时一幅完整图片采集流程1

注意:此流程仅供参考,设计中应包含但不限于如下流程,即对一下采集流程兼容。

单片机串口通信协议程序

#include #include #define R55 101 #define RAA 202 #define RLEN 203 #define RDATA 104 #define RCH 105 //#define unsigned char gRecState=R55; unsigned char gRecLen; unsigned char gRecCount; unsigned char RecBuf[30]; unsigned char gValue; void isr_UART(void) interrupt 4 using 1 { unsigned char ch; unsigned char i; unsigned char temp; if (RI==1) { ch=SBUF; switch(gRecState) { case R55: // wait 0x55 if (ch==0x55) gRecState=RAA; break;

case RAA: if (ch==0xaa) gRecState=RLEN; else if (ch==0x55) gRecState=RAA; else gRecState=R55; break; case RLEN: gRecLen=ch; gRecCount=0; gRecState=RDATA; break; case RDATA: RecBuf[gRecCount]=ch; gRecCount++; if (gRecCount>=gRecLen) { gRecState=RCH; } break; case RCH: temp=0; for(i=0;i

串口通信协议

串口通讯—通信协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。 目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。 一、物理接口标准 1.串行通信接口的基本任务 (1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。 (3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。 (4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。 (5)进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。 (6)提供EIA-RS-232C接口标准所要求的信号线:远距离通信采用MODEM时,需要9根信号线;近距离零MODEM方式,只需要3根信号线。这些信号线由接口电路提供,以便与MODEM或终端进行联络与控制。 2、串行通信接口电路的组成 为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA 与TTL电平转换器以及地址译码电路组成。其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的。才用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。 3.有关串行通信的物理标准 为使计算机、电话以及其他通信设备互相沟通,现在,已经对串行通信建立了几个一致的概念和标准,这些概念和标准属于三个方面:传输率,电特性,信号名称和接口标准。 1、传输率:所谓传输率就是指每秒传输多少位,传输率也常叫波特率。国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特率系列为110、300、600、1200、4800、9600和19200。大多数CRT终端都能够按110到9600范围中的任何一种波特率工作。打印机由于机械速度比较慢而使传输波特率受到限制,所以,一般的串行打印机工作在110波特率,点针式打印机由于其内部有较大的行缓冲

51串口通信协议(新型篇)

51串口通信协议(新型篇) C51编程:这是网友牛毅编的一个C51串口通讯程序! //PC读MCU指令结构:(中断方式,ASCII码表示) //帧:帧头标志|帧类型|器件地址|启始地址|长度n|效验和|帧尾标志 //值: 'n' 'y'| 'r' | 0x01 | x | x | x |0x13 0x10 //字节数: 2 | 1 | 1 | 1 | 1 | 1 | 2 //求和: ///////////////////////////////////////////////////////////////////// //公司名称:*** //模块名:protocol.c //创建者:牛毅 //修改者: //功能描述:中断方式:本程序为mcu的串口通讯提供(贞结构)函数接口,包括具体协议部分 //其他说明:只提供对A T89c51具体硬件的可靠访问接口 //版本:1.0 //信息:QQ 75011221 ///////////////////////////////////////////////////////////////////// #include #include //预定义 //帧 #define F_ST1 0x6e //帧头标志n #define F_ST2 0x79 //帧头标志y #define F_R 0x72 //帧类型读r #define F_W 0x77 //帧类型写w #define F_D 0x64 //帧类型数据帧d #define F_B 0x62 //帧类型写回应帧b #define F_C 0x63 //帧类型重发命令帧c #define F_Q 0x71 //帧类型放弃帧q #define F_ADDR 0x31 //器件地址0-9 #define F_END 0x7a //帧尾标志z #define F_SPACE 0x30 //空标志0 #define F_ERR1 0x31 //错误标志1,flagerr 1 #define F_ERR2 0x32 //错误标志2 2 //常数 #define S_MAXBUF 16 //接收/发送数据的最大缓存量 #define FIELD_MAXBUF 48 //最小场缓存,可以大于48字节,因为协议是以20字节为

USB基本知识与通信协议书范本

串口通信协议 什么是串口 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal SerialBus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(b yte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇

AB DF1串口通讯协议API接口

Fax: 1-703-709-0985 https://www.360docs.net/doc/d211509653.html, Allen-Bradley DF1 Serial Communication Interface API The DASTEC Corporation Allen-Bradley DF1 Serial Communication Interface API allows the user to implement bi-directional serial communications to exchange data between applications running on a Windows/WinCE-based system with other devices supporting the Allen-Bradley DF1 full-duplex serial protocol. The devices can be AB devices, other host computers or even other system applications using the API. The Allen-Bradley DF1 Serial Communication Interface API enables a system to acts as a client device to other Allen-Bradley peer devices, initiating read and write operations on behalf of the system applications. The API also allows the system to emulate an Allen-Bradley PLC to respond to read and write requests and thus acts as a “virtual PLC” to other AB peers. The API is available for different Windows/WinCE-based systems/platforms and can be used with C/C++ or Visual Basic. The API consists of two component functionalities, client side and server side. The client side functionality is implemented with a single API DLL. Server side functionality is implemented with a DLL/executable pair. Together these components manage all aspects of the protocol and data exchange including responding to peers with proper acknowledgements, error/success codes and protocol data byte ordering. The system application need only to deal with the data values exchanged in native byte order. The user can employ either the API’s client, server or both functionalities with minimal code implementation.

系统串口通讯协议

ZHET 系统串口通讯协议 通 讯 技 术 手 册 型号:SYRDS1-485 (SYRDSSS1) SYRDL1-485 (SYRLSSS1) 玺瑞国际企业有限公司 SYRIS International Corp.

通讯技术手册 通讯协议(Protocol) 卡片阅读机模块(Reader Module)的通讯协议(Protocol)皆出自于SYRIS 的一种标准通讯协议,这种协议格式如下表: 1.SOH 和 END 都是一个字节的控制字符: SOH 控制器端定义为 <0x09> 模块端定义为 <0x0A> END 控制器及模块端均固定为 <0x0D> 其中 <0x> 为十六进制表示法. 2.TYPE 为模块型式编号,固定为一个字节,本型式编号固定为“A”. 3.ID为模块端的识别代码,这一字节的 ASCII 字符必须是在 1 <0x31> 到 8 <0x38> 的范围内,假如控制器端传送之ID值与模块地址编号相同时, 则该模块将会接收控制器端所传送的数据,而模块响应时,也会传回相同的地址编号.

4.FC是通讯功能码(Function Code)和资料(DATA)有相关性,固定为一个 字节,这些资料请参考通讯协议表及相关说明. 5.错误讯息判断代码(Error Code)为两个字节,第一个字节为固定为 <0x0E> ,第二个字节为错误代码,请参考错误讯息代码表. 6.8 BITS BCC是所有字符的检查字段,为二个字节,有关 8 BITS BCC 的 信息和范例程序,请参考附录A. 7.RS485传输协议请设定为”E,8,1”,速率为”19200”. 错误讯息代码表(Error Code Table) ※ Error Code #1固定为 <0x0E>.

串口通讯协议

串口通讯协议 波特率9600,数据位8位,起始位1位,停止位2位,校验采用16位CRC校验,校验包括头部信息和数据。 帧定义: 主机发送事件数据定义

u16 const crc_table[256] = { 0x0000U, 0x1021U, 0x2042U, 0x3063U, 0x4084U, 0x50a5U, 0x60c6U, 0x70e7U, 0x8108U, 0x9129U, 0xa14aU, 0xb16bU, 0xc18cU, 0xd1adU, 0xe1ceU, 0xf1efU, 0x1231U, 0x0210U, 0x3273U, 0x2252U, 0x52b5U, 0x4294U, 0x72f7U, 0x62d6U, 0x9339U, 0x8318U, 0xb37bU, 0xa35aU, 0xd3bdU, 0xc39cU, 0xf3ffU, 0xe3deU, 0x2462U, 0x3443U, 0x0420U, 0x1401U, 0x64e6U, 0x74c7U, 0x44a4U, 0x5485U, 0xa56aU, 0xb54bU, 0x8528U, 0x9509U, 0xe5eeU, 0xf5cfU, 0xc5acU, 0xd58dU, 0x3653U, 0x2672U, 0x1611U, 0x0630U, 0x76d7U, 0x66f6U, 0x5695U, 0x46b4U, 0xb75bU, 0xa77aU, 0x9719U, 0x8738U, 0xf7dfU, 0xe7feU, 0xd79dU, 0xc7bcU, 0x48c4U, 0x58e5U, 0x6886U, 0x78a7U, 0x0840U, 0x1861U, 0x2802U, 0x3823U, 0xc9ccU, 0xd9edU, 0xe98eU, 0xf9afU, 0x8948U, 0x9969U, 0xa90aU, 0xb92bU, 0x5af5U, 0x4ad4U, 0x7ab7U, 0x6a96U, 0x1a71U, 0x0a50U, 0x3a33U, 0x2a12U, 0xdbfdU, 0xcbdcU, 0xfbbfU, 0xeb9eU, 0x9b79U, 0x8b58U, 0xbb3bU, 0xab1aU, 0x6ca6U, 0x7c87U, 0x4ce4U, 0x5cc5U, 0x2c22U, 0x3c03U, 0x0c60U, 0x1c41U, 0xedaeU, 0xfd8fU, 0xcdecU, 0xddcdU, 0xad2aU, 0xbd0bU, 0x8d68U, 0x9d49U, 0x7e97U, 0x6eb6U, 0x5ed5U, 0x4ef4U, 0x3e13U, 0x2e32U, 0x1e51U, 0x0e70U, 0xff9fU, 0xefbeU, 0xdfddU, 0xcffcU, 0xbf1bU, 0xaf3aU, 0x9f59U, 0x8f78U, 0x9188U, 0x81a9U, 0xb1caU, 0xa1ebU, 0xd10cU, 0xc12dU, 0xf14eU, 0xe16fU, 0x1080U, 0x00a1U, 0x30c2U, 0x20e3U, 0x5004U, 0x4025U, 0x7046U, 0x6067U, 0x83b9U, 0x9398U, 0xa3fbU, 0xb3daU, 0xc33dU, 0xd31cU, 0xe37fU, 0xf35eU, 0x02b1U, 0x1290U, 0x22f3U, 0x32d2U, 0x4235U, 0x5214U, 0x6277U, 0x7256U, 0xb5eaU, 0xa5cbU, 0x95a8U, 0x8589U, 0xf56eU, 0xe54fU, 0xd52cU, 0xc50dU, 0x34e2U, 0x24c3U, 0x14a0U, 0x0481U, 0x7466U, 0x6447U, 0x5424U, 0x4405U, 0xa7dbU, 0xb7faU, 0x8799U, 0x97b8U, 0xe75fU, 0xf77eU, 0xc71dU, 0xd73cU, 0x26d3U, 0x36f2U, 0x0691U, 0x16b0U, 0x6657U, 0x7676U, 0x4615U, 0x5634U, 0xd94cU, 0xc96dU, 0xf90eU, 0xe92fU, 0x99c8U, 0x89e9U, 0xb98aU, 0xa9abU, 0x5844U, 0x4865U, 0x7806U, 0x6827U, 0x18c0U, 0x08e1U, 0x3882U, 0x28a3U, 0xcb7dU, 0xdb5cU, 0xeb3fU, 0xfb1eU, 0x8bf9U, 0x9bd8U, 0xabbbU, 0xbb9aU, 0x4a75U, 0x5a54U, 0x6a37U, 0x7a16U, 0x0af1U, 0x1ad0U, 0x2ab3U, 0x3a92U, 0xfd2eU, 0xed0fU, 0xdd6cU, 0xcd4dU, 0xbdaaU, 0xad8bU, 0x9de8U, 0x8dc9U, 0x7c26U, 0x6c07U, 0x5c64U, 0x4c45U, 0x3ca2U, 0x2c83U, 0x1ce0U, 0x0cc1U, 0xef1fU, 0xff3eU, 0xcf5dU, 0xdf7cU, 0xaf9bU, 0xbfbaU, 0x8fd9U, 0x9ff8U, 0x6e17U, 0x7e36U, 0x4e55U, 0x5e74U, 0x2e93U, 0x3eb2U, 0x0ed1U, 0x1ef0U }; u16 crc16(u16 crc,const u8 *data, u32 len )len可以为u8,u16,u32 { while (len--) crc = crc_table[(crc >> 8 ^ *(data++)) & 0xffU] ^ (crc << 8); return crc; } 例:u8 *buf=”123456789”;

串口通讯—通信协议

串口通讯—串口通信协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。 目前,串口通信协议通常有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。 一、物理接口标准 1、串行通信接口的基本任务 (1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。 (3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。 (4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。 (5)进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。 (6)提供EIA-RS-232C接口标准所要求的信号线:远距离通信采用MODEM 时,需要9根信号线;近距离零MODEM方式,只需要3根信号线。这些信号线由接口电路提供,以便与MODEM或终端进行联络与控制。 2、串行通信接口电路的组成 为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA与TTL电平转换器以及地址译码电路组成。其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的。采用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。

串口协议

串口协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。 一、物理接口标准 1.串行通信接口的基本任务 (1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。 (3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。 (4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。(5)进行TTL 与EIA电平转换:CPU 和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。 (6)提供EIA-RS-232C 接口标准所要求的信号线:远距离通信采用MODEM 时,需要9根信号线;近距离零MODEM 方式,只需要3 根信号线。这些信号线由接口电路提供,以便与MODEM 或终端进行联络与控制。 2、串行通信接口电路的组成 为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA 与TTL 电平转换器以及地址译码电路组成。其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的。才用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。

串口通信协议

1 串口 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal SerialBus或者USB混淆)。 2 串行通信的传输方向 2.1 单工 单工是指数据传输仅能沿一个方向,不能实现反向传输。 2.2 半双工 半双工是指数据传输可以沿两个方向,但需要分时进行。 2.3 全双工 全双工是指数据可以同时进行双向传输。 单工半双工全双工 3 重要参数 串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配。 3.1 波特率 这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 常用的波特率有,1200,2400,4800,9600,19200,38400,115200等。 3.2 数据位 这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

串口通信协议

串口通信协议 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。 什么是RS-232 RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS-232串口通信最远距离是50英尺。 DB-9针连接头 9针串口连接口顺序图 从计算机连出的线的截面。 RS-232针脚的功能: 数据: TXD(pin 3):串口数据输出(Transmit Data) RXD(pin 2):串口数据输入(Receive Data) 握手: RTS(pin 7):发送数据请求(Request to Send) CTS(pin 8):清除发送(Clear to Send) DSR(pin 6):数据发送就绪(Data Send Ready) DCD(pin 1):数据载波检测(Data Carrier Detect) DTR(pin 4):数据终端就绪(Data Terminal Ready) 地线: GND(pin 5):地线 其他 RI(pin 9):铃声指示 什么是RS-422 RS-422(EIA RS-422-AStandard)是Apple的Macintosh计算机的串口连接标准。RS-422使用差分信号,RS-232使用非平衡参考地的信号。差分传输使用两根线

SPI串行通信协议

SPI串行通信协议 同步串行外设接口(S PI)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。 SPI(Serial Peripheral Interface)是一种串行串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。SPI 接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS 决定了唯一的与主设备通信的从设备,如没有CS 信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。通讯时,数据由SDO 输出,SDI 输入,数据在时钟的上升或下降沿由SDO 输出,在紧接着的下降或上升沿由SDI 读入,这样经过8/16 次时钟的改变,完成8/16 位数据的传输。 总线协议 该总线通信基于主-从(所有的串行的总线均是这样,USB,IIC,SPI等)配置,而且下面提到的方向性的操作合指代全部从主设备的角度说得。它有以下4个信号: MOSI:主出/从入 MISO:主入/从出 SCK:串行时钟 SS:从属选择;芯片上“从属选择”(slave-select)的引脚数决定了可连到总线上的器件数量。 在SPI传输中,数据是同步进行发送和接收的。数据传输的时钟基于来自主处理器的时钟脉冲(好像也可以是IO上的电平的模拟时钟),摩托罗拉没有定义任何通用SPI的时钟规范。然而,最常用的时钟设置基于时钟极性(CPOL)和时钟相位(CPHA)两个参数,CPOL定义SPI串行时钟的活动状态,而CPHA定义相对于SO-数据位的时钟相位。CPOL和CPHA的设置决定了数据取样的时钟沿。 数据方向和通信速度 SPI传输串行数据时首先传输最高位。波特率可以高达5Mbps,具体速度大小取决于SPI硬件。例如,Xicor公司的SPI 串行器件传输速度能达到5MHz。 SPI总线接口及时序 SPI总线包括1根串行同步时钟信号线以及2根数据线。 SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI接口时序如图3、图4所示。

串口通信协议程序

串口通信协议程序 主机程序: /* 主机主要处理 : 主—>从 1.给从机发送命令 2.给从机发送数据 3.命令从机向主机发送数据 从—>主由中断程序处理根据从机发送过来的请求类型 0.请求主机发送命令(包括主到从的1,2命令) 1.请求主机接收数据 2,3保留 */ #include #include #define uchar unsigned char #define uint unsigned int #define slav1_addr 0x01 #define slav2_addr 0x02 #define COMEND 0 #define REC_DATE 1 //主机向从机发送多数据命令高四位为1111,所以其他命令高四位不能为1111 #define cmd_X 0x12 #define cmd_rec_data 0x11 sbit signal=P3^2; uchar temp_addr,num,rec,style,re_addr; uchar buf[20]; uchar rec_data[10];

void delay(unsigned int i) { while(i--); } void init_uart(void) { TMOD=0x20; //定时器方式2--8位reload模式 TH1=0xfd; TL1=0xfd; PCON=0; //波特率不加倍 SCON=0xf0; //方式三 TB8=1; //发送地址时第九位为1 SM2=1; //接收到第九位为1时才能接收数据 TR1=1; //要在设置scon后开定时 ES=1; //开中断 EA=1; } //发送命令 void uart_send_cmd(uchar addr,uchar cmd)//uchar *date) { while(signal==0); //检查总线是否被占 signal=0; //占用总线 EA=0;//关中断 do {

SPI串口通信协议

SPI串口通信协议 1.1 SPI串口通信介绍 SPI是英文Serial Peripheral Interface的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。 SPI:高速同步串行口。3~4线接口,收发独立、可同步进行. SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200. SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 (1)SDO –主设备数据输出,从设备数据输入 (2)SDI –主设备数据输入,从设备数据输出

串口通信协议程序

主机程序: /* 主机主要处理: 主—>从 1.给从机发送命令 2.给从机发送数据 3.命令从机向主机发送数据 从—>主由中断程序处理根据从机发送过来的请求类型 0.请求主机发送命令(包括主到从的1,2命令) 1.请求主机接收数据 2,3保留 */ #include #include #define uchar unsigned char #define uint unsigned int #define slav1_addr 0x01 #define slav2_addr 0x02 #define COMEND 0 #define REC_DATE 1 //主机向从机发送多数据命令高四位为1111,所以其他命令高四位不能为1111 #define cmd_X 0x12 #define cmd_rec_data 0x11 sbit signal=P3^2; uchar temp_addr,num,rec,style,re_addr; uchar buf[20]; uchar rec_data[10]; void delay(unsigned int i) { while(i--); } void init_uart(void) { TMOD=0x20; //定时器方式2--8位reload模式 TH1=0xfd; TL1=0xfd; PCON=0; //波特率不加倍 SCON=0xf0; //方式三 TB8=1; //发送地址时第九位为1 SM2=1; //接收到第九位为1时才能接收数据

TR1=1; //要在设置scon后开定时 ES=1; //开中断 EA=1; } //发送命令 void uart_send_cmd(uchar addr,uchar cmd)//uchar *date) { while(signal==0); //检查总线是否被占 signal=0; //占用总线 EA=0;//关中断 do { do { SBUF=addr; //发送从机地址 while(TI!=1); TI=0; } while(RI!=1); //一直等待从机响应 //while循环里可加入出错处理temp_addr=SBUF; RI=0; } while(temp_addr!=addr); //一直等到从机回应的地址相同 //while循环里可加入出错处理 TB8=0; //发送数据第9位为0 // SM2=0; // 接收到第九位为1时才置位RI //每次一个数据 SBUF=cmd; while(TI!=1); TI=0; TB8=1; // SM2=1; RI=0; TI=0; //不处理期间发生的中断 EA=1; signal=1; //释放总线 }

串口通信协议

标签:RS232RS485串口协议比较 串口通信协议比较 串口通信协议主要有RS232、RS422 、RS485。下面将从其发展历史、各自特点来介绍各种协议,RS232和RS485的区别和接法。 首先是发展历史。最开始出现的串口通信协议是RS232,1962年发布的。由于其传输速度、单向传递、传输距离短等多方面的制约,因此使用受到限制。于是人们在RS232的基础上做了相应的改进,提高了相应的传输速度、传输距离,于是出现了RS422的雏形,并在工业上得到了相应的应用。但由于任然是单向传输的,使构成的网络只能是单向的。既只能是主机给从机发送指令或数据,从机只能接受并处理相应的消息,不能反映相应的结果。于是人们又做了相应的调整。最后于1983年发布了RS485通信协议。 正如前面所说的。RS232协议是一种简单的串口通信协议,也是最基本的。一般用在实验室等短距离、对传输速度等要求不高的场合,并且与TTL电平不兼容。 RS422有了相应的提高。是一种单机发送,多机接收的平衡通信协议接口,传输速度最高可以达到10Mbps,传输距离最远可达到4000英尺,并且在这条平衡总线上能最多带10个从机,但是任然是单向的传输。 RS485是一种多点,双向通信的平衡通信协议接口。再RS422的基础上增加了网络中接点(多机)的数量和双向通信能力,同时还增加了驱动器的传输能力和冲突保护特性,扩展了总线共模范围。传输速度最高可以达到10Mbps,标准距离可以达到4000英尺,实际能达到3000米,并且在这条线上最多可以带128个收发器。 RS232和RS485的区别: 1.传输速度不同。RS485可以达到10Mbps,高于RS232的速度。 2.电气特性不同。RS485采用的是平衡驱动器和差分接收器的组合。RS485 是输出的是差分信号,抗共模干扰能力强。逻辑“1”是两输出信号的+(2~6)V,“0”是-(2~6)V表示。电气信号低于RS232的电气信号,不容易损坏接口芯片,并且与TTL电平兼容。 3.传输距离不同。RS485标准距离为4000英尺,实际可以达到3000米。远远大于RS232的距离。 4.接收器数量不同。RS485接收器最多可以达到128个,即多站能力。而RS232只能是一个,即单站接点。

串口通讯协议(更改)

显控计算机与信号处理板通讯协议 1通讯传输类型 显控计算机(以下简称MPC)与信号处理板(以下简称DSP)通讯采用RS232全双工串行接口,其接口特性如下: 波特率9600 通讯格式1位起始位,8位数据位,1位停止位,无奇偶校验位 2通讯协议 2.1 工作流程 a)建立通讯: MPC和DSP上电进行通讯握手后建立通讯。握手过程为MPC按1s为周期发送检测通讯数据块;DSP上电初始化后处于等待接收状态,接收到MPC发来的检测通讯数据块后,向MPC发送握手数据块(其中包含DSP产品标识和自检结果);MPC接收到DSP的握手数据块后,停止发送检测通讯数据块,完成通讯检测,显示DSP状态数据。通讯建立后,MPC可向DSP发送一次读参数数据块,以获得DSP当前工作参数;DSP接收到MPC读参数数据块后,返回当前的工作参数。 b)正常工作状态: DSP向MPC按工作周期发送检测结果数据块。MPC周期接收检测结果数据块后刷新显示结果。 c)工作参数设置: 在工作过程中,MPC可以对DSP的工作参数进行读/写控制,DSP接收到读参数数据块后,返回当前的工作参数;DSP接收到写参数数据块后,更改相应工作参数,进入相应工作方式。 2.2 通讯数据定义 2.2.1 检测通讯数据块- 源:MPC 更新周期:上电后1s周期重复发送直到接收到握手数据块 数据块结构定义:

2.2.2 握手数据块- 源:DSP 更新周期:收到检测通讯数据块后,回送一次 数据块结构定义: 第7字节表示DSP标识,0x01代表TMS320F2812。 第8、9字节为软件版本,0x01、0x00表示版本为1.00。 2.2.3 读/写参数数据块- 源:MPC 更新周期:建立通讯后发送一次或参数设置时发送一次 数据块结构定义:

相关文档
最新文档