[url=]数据格式[/url] 异步通信数据帧的第一位是开始位,在通信线上没有数据传送时处于逻辑"1”状态。当发送设备要发送一个字符数据时,首先发出一个逻辑"0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。
当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5,6,7或8位的数据。在字符数据传送过程中,数据位从最低位开始传输。数据发送完之后,可以发送奇偶校验位。奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽有限但很容易实现。在奇偶位或数据位之后发送的是停止位,可以是1位、1.5位或2位。停止位是一个字符数据的结束标志。
在异步通信中,字符数据以图所示的格式一个一个地传送。在发送间隙,即空闲时,通信线路总是处于逻辑"1”状态,每个字符数据的传送均以逻辑"0”开始。
编辑本段[url=]通信协议[/url] EIA RS-232-C 是美国电子工业协会正式公布的异步串行通信标准,也是目前最常用的异步串行通信标准,用来实现计算机与计算机之间、计算机与外设之间的数据通信,与国际电报电话咨询委员会CCITT 指定的串行接口标准V.24 “数据终端设备(DTE)和数据通信设备(DCE)之间的接口电路定义表"基本相同。
RS-232-C 电平采用负逻辑,即,逻辑1:-3~-15V,逻辑0:+3~+15V。注意,单片机使用的CMOS 电平中,高于电源电压70%为高电平,例如,若单片机以+5V 供电,则高于3.5V 为逻辑1,低电平0~0.8V 为逻辑0。单片机的SCI 口要外接电平转换电路芯片把与TTL 兼容的CMOS 高电平表示的1 转换成RS-232 的负电压信号,把地电平转换成RS-232 的正电压信号。典型的转换电路给出-9V 和+9V。
在 RS-232 端口,如PC 机的COM1,用万用表测量到+9V 或-9V 电位则说明这一端为输出端,量到不确定电平的是输入端。量到负电压信号说明信号有效,有效的含义是1,和定义一致,如DTR(Data Terminal Ready),为负电压时为"Ready”,正电压表示"Not Ready”。
RS-232-C 适用于设备之间的通信距离不大于15m(50 英尺),传输速率最大为20KB/s 的数据传输领域,后来随着CPU 运行速度的提高,对于较短的通信距离,例如2m(约6 英尺),单片机与PC 之间,异步串行通信的速率可使用115200B/s。
PC 机的串行口是按照数据终端设备DTE 定义的,要实现单片机与PC 通过串行口通信,要用一根电缆连接单片机的SCI 接口和PC 机的SCI 接口,通常为COM1 或COM2,设计单片机的SCI 接口要知道这个口怎么接。既然PC 机是按DTE 定义的,单片机一端必须按照DCE 定义,二者才能直接相连,如果都按DTE 定义,则电缆两端的发送、接收要“拧”一下才行。
RS-232-C 标准主要是DTE1和DCE2之间的连接定义,内容包括接口的电气特性、机械特性等。RS-232-C 的插头分为DCE 端和DTE 端。传统的RS-232-C 接口标准有22 根线,采用标准25 芯D 型插头座。后来的PC 上使用简化了的9 芯D 型插座,在单片机应用中25芯插头座已很少采用。这两种类型中,25 芯定义与9 芯相关的RS-232-C 串行标准接口信号定义见表5-1。虽然表5-1 中9 芯D 型插头座没有定义保护地,但金属外壳设备的保护地不应没有,这里显然可以借用1 或9。遇到接RS-232 电缆的情况时,最好是用万用表量一下。
编辑本段[url=]通信速率[/url] 所谓异步通信是指通信双方没有共同的时钟用以同步。通信双方使用各自的时钟,并约定使用同样的通信数据速率,这一通信速率被称为波特率(Baud Rate),波特率为1表示每秒传送1 位。标准的波特率有50、110、300、600、1200、2400、4800、9600、19200、38400、57600、115200 等。
若双方没有同步时钟,通信速率不可能很快,因为完成通信需要有16 倍于波特率的时钟。要实现115200 的波特率,SCI 模块内部的工作时钟就必须不低于1.8432MHz。这一频率的时钟是从单片机时钟分频而来的。
单片机片内的 SCI 模块靠第3、5、7 个时钟来采样接收信号下降沿,探测对方发送来的数据起始位。对第3、5、7 个时钟周期采样到的信号做3 取2 处理,以确认起始位信号的下降沿,以此实现和对方的数据同步。探测到下降沿以后,第8、9、10 个时钟周期采样到低个时钟周期采样到低电平就可以确认收到了起始位。以后,对于每个数据位都要用第8、9、10 个时钟周期采样接收到的数据位,并作3 取2 处理,以克服传输线上可能的噪声。
|