3. RS-232 接口的信号
现在的RS-232接口常用于异步(Asynchronous)串行通讯,实际上也可以用于同步(Synchronous)串行通讯。
3.1)RS-232 接口信号引脚及定义
数据传输分别使用PIN2和PIN3,DSR指示DCE(如MODEM)已启动,而DTR指示DTE(如计算机)已启动,DCD指示远端MODEM已接收到良好的载波信号。
DTE发出的RTS和DCE发出的CTS 用于控制。在多数异步传输方式下,RTS和CTS 在通讯过程中保持不变。然而在DTE连接在多点传输线上时,RTS用来打开和关闭MODEM的载波,因为多点传输线上在某个时间只能有一个发送者,以使多终端共用一对电话线。 每当一个DTE要发送数据,就使RTS有效, MODEM于是发出载波,一般要等待几毫秒使载波稳定,然后使CTS有效。DTE在收到CTS后开始发送数据。当DTE完成发送数据,就使RTS无效,MODEM于是使CTS无效并关闭载波。
时钟信号(PIN15、17和24) 仅用于同步通讯(synchronous communications)。MODEM从数据码流中取出稳定的时钟信号并发给DTE。注意,即使波特率相同时,发送和接收的时钟信号也不一定相同。
RS232 DB25
3.2)PC机常用的RS-232 接口信号引脚及定义
IBM制造PC 机时将RS-232 简化成了DB-9连接器,后来成为事实标准。
旧式的PC 机有些带有DB-25针插座的串口连接器(一般为COM2),为公头插座(或称MALE),这与常见的DB-25的并口连接器不同,DB-25的并口使用25 芯孔插座(也称为母头或FEMALE)。
3.3)信号电平及电平转换
在RS-232-C中任何一条信号线的电压均为负逻辑关系。即:逻 辑“1” 为-5— -15V;逻辑“0”为 +5— +15V。噪声容限为2V,即 要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号 作为逻辑“1” 。+3V到-3V之间称为死区,为抵抗线路噪声的干扰。但不同的设备有可能使用不同的电平门限,比如CCITT V.10 定义死区为+0.3V to -0.3V。也有的接收机把门限设为1V或更低。
逻 辑“1”表示 "idle" 状态(也称OFF或MARK),逻辑“0”表示"active"状态(也称ON或SPACE)。
这种信号方式源于当时主要使用的DTL电平,与现在数字电路常用的TTL电平不同,不能直接相连,中间需要加电平转换电路。
RS-232-C规定了25条引线,实际中有许多是很少使用的,如PC 机一般只有9条引线,3条输出5条输入,因PC 机有+12V和 -12V电源,常用的电平转换芯片为SN75185、GD75232等芯片,也有单独的驱动芯片MC1488、SN75188和接收芯片MC1489、SN75189。而DCE(数据通信设备)方有3条输入5条输出线,需使用对应驱动芯片SN75196、GD75323,但往往DCE只有5V单电源,这时一般使用内带电荷泵的芯片MAX207、SN65C3238、SN65C3243等, 甚至也有使用3.3V单电源的芯片。
一些情况下,设备与PC 机连接的RS-232 接口,不使用控制信号,仅使用三条接口线RXD、TXD、GND(如单片机通过UART连接PC 机),也只有单电源,使用内带电荷泵的单路收发芯片,MAXIM、TI、SIPEX、ST等公司都有这种芯片。
3.4)信号格式
RS-232最常使用异步串行传输,每个数据包含有7 或 8 bit数据位和起始位start,停止位stop, 校验位parity (可选用,也可用于指示位)。 传输数据的样值如图所示:起始位(低有效,通常在+3v到+15v之间),紧接着数据位(7或8 bit),校验位(根据协议选用),由停止位结束(通常返回逻辑高,电压在-3v到-15v之间)。注意:RS-232使用负逻辑。
3.5)串口鼠标
早期PC机使用串口鼠标,以标准的RS-232-C 输出信号 (+-12V) 作为输入。鼠标取用RS-232-C的输出线的电流(大约10mA),并发送计算机RS-232-C接收芯片可以识别的电平信号。鼠标一般输出信号为+-5V或0-5V ,有些输出+-12V。鼠标电路一般使用+5V电压,一般从DTR和RTS线产生MCU使用的正电源,而负电源一般取自TD,典型的机械鼠标需要4只红外LED做移动检测,一般使用二极管从DTR和RTS线取电,然后通过电阻加到4只LED上。鼠标总体需要10 mA 电流,工作电压6-15V。
鼠标能够正常工作,RTS和DTR线必须为正电压, DTR-DSR和RTS-CTS之间不要连接。当DTR正常,鼠标要发一个包含字母"M" (ascii 77) 的字节来识别自身。而冷启动后,RTS 一般设为负电压,这时需要把RTS转换为正,称为反转RTS。要完成RTS电压的反转,负脉冲宽度至少为100ms。
串口鼠标使用格式为1200bps, 7 data bits, 1 stop-bit,发送的数据包为3字节长度,每次鼠标状态改变(移动或按键的按压与释放) 都要向计算机发送数据。数据格式如下:
| bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
byte1 | X | 1 | LB | RB | Y7 | Y6 | X7 | X6 |
byte2 | X | 0 | X5 | X4 | X3 | X2 | X1 | X0 |
byte3 | X | 0 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 |
字节1(byte1)首先发出,然后是其他2个字节。字节1的bit6用做同步数据包。
LB是左键的状态(1表示按下),RB是右键的状态(1表示按下);X7-X0表示从上次数据包发出后沿X方向移动的距离,Y7-Y0表示从上次数据包发出后沿Y方向移动的距离。
用X表示的位,在使用7 bits数据和2 bits停止位格式时为0;而使用8 bits数据和1 bits停止位格式时为1 。最安全的方式是使用7 bits数据和1 bits停止位的接收格式。
3.6)信号规格表
文章评论(0条评论)
登录后参与讨论