一、先弄懂几个概念:
1、通信协议(通信规程): 是指通信双方约定的一些规则。
比如UART,在使用异步通信传送一个字符的信息时,对资料格式有如下规定:有空闲位、起始位、数据位、奇偶校验位、停止位。
2、数据帧:所谓数据帧(Data frame),就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;
比如UART中,起始位就是帧头,帧尾就是奇偶校验位和停止位。
3、cmos门和TTL门的区别
TTL电平标准
输出 L: <0.8V ; H:>2.4V。
输入 L: <1.2V ; H:>2.0V
TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。
CMOS电平:
输出 L: <0.1*Vcc ; H:>0.9*Vcc。
输入 L: <0.3*Vcc ; H:>0.7*Vcc.
二、UART的传输格式
异步通信是以一个字符为传输单位,通信中两个字符间的时间间隔是不固定的,但在同一个字符中的两个相邻位代码间的时间间隔是固定的。数据格式如下图1.
图1
数据传输格式一般为一位起始位、数据位长可以是5、6、7、8位这里一般用8位数据位,一位奇偶校验位(可以不需要检验)、停止位长可以是1、1.5、2位。
数据帧传输是可编程的。
UART包括数据接收、数据发送、中断发生器、波特率发生器、回还模式、红外模式、自动控制模式组成。
三、硬件电路设计
由于RS232-C标准电路定义的高低电平信号与S3C6410系统的LVTTL电路定义的高低电平信号完全不同。RS232-C标准采用的是负逻辑方式,即标准逻辑“1”对应 -5 ~ -15V电平,标准逻辑“0”对应 5 ~ 15V。LVTTL的标准逻辑“1”对应 2 ~ -3.3V电平,标准逻辑“0”对应 0 ~ 0.4V,所以这里要采用电平转换芯片进行电平转换。
硬件电路如图2,这里是用了一个电压泵(SP232E)进行转换,对电压进行了升压操作,电容在这里起充放电的作用。对于试验使用UART只需要选用三根线分别是RXD、TXD、GND。
图2
四、软件部分
软件部分就是对相应的控制器进行操作。查看原理图和sheetdata得到的信息,如下图
每一帧都是可编程的,