串口通信小试牛刀
一、串口协议和RS-232标准
(一)串口通讯协议
1.简介
串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485
2.串口通信的基本原理
1)串口在嵌入式系统当中是一类重要的数据通信接口,其本质功能是作为 CPU 和串行设备间的编码转换器。当数据从 CPU 经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。
2)应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。典型地,串口用于 ASCII 码字符的传输。
- 通信使用3根线完成:
(1)地线,
(2)发送数据线,
(3)接收数据线。3)串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
- 对于两个进行通行的端口,这些参数必须匹配:波特率是一个衡量通信速度的参数,它表示每秒钟传送的 bit 的个数;数据位是衡量通信中实际数据位的参数,当计算机发送一个信息包,标准的值是 5,7 和 8 位。如何设置取决于你的需求;停止位用于表示单个包的最后一位,典型的值为 1,1.5和 2 位,停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会;奇偶校验位是串口通信中一种简单的检错方式,有四种检错方式——偶、奇、高和低,也可以没有校验位。
(二)RS232串口标准
1.简介
RS232串口标准是美国EIA(电子工业联合会)与BELL等公司一起开发的通信协议。它适合于数据传输速率在0~20000bit/s范围内通信。RS232作为一种标准,被广泛应用于计算机与外设间的一种常通信接口,其中外设应用种类繁多,如:打印机、数据采集模块、测试装置和各种控制回路,甚至RS232串行接口还可用于计算机之间的简单连接上。
2.RS232串行接口的特点
优点
(1)信号线少
- RS-232总线规定了25条线,包含了两个信号通道,即第一通道(称为主通道)和第二通道(称为副通道)。利用RS- 232总线可以实现全双工通信,通常使用的是主通道,而副通道使用较少。在一般应用中,使用3条~9条信号线就可以实现全双工通信,采用三条信号线(接收线、发送线和信号地)能实现简单的全双工通信过程。 [1]
(2)灵活的波特率选择
- RS-232规定的标准传送速率有50b/s、75b/s、110b/s、150b/s、300b/s、600b/s、1200b/s、2400b/s、4800b/s、9600b/s、19200b/s,可以灵活地适应不同速率的设备。对于慢速外设,可以选择较低的传送速率:反之,可以选择较高的传送速率。 [1]
(3)采用负逻辑传送
- 规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V。选用该电气标准的目的在于提高抗干扰能力,增大通信距离。RS -232的噪声容限为2V,接收器将能识别高至+3V的信号作为逻辑“0”,将低到-3 V的信号作为逻辑“1”。 [1]
(4)传送距离较远
- 由于RS -232采用串行传送方式,并且将微机的TTL电平转换为RS-232C电平,其传送距离一般可达30 m。若采用光电隔离20 mA的电流环进行传送,其传送距离可以达到1000 m。另外,如果在RS-232总线接口再加上Modem,通过有线、无线或光纤进行传送,其传输距离可以更远。 [1]
缺点
缺点编辑 语音
(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2)传输速率较低,在异步传输时,波特率为20Kbps;因此在CPLD开发板中,综合程序波特率只能采用19200,也是这个原因。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。
3.RS232串行接口的电气特性
数据线Txd和Rxd上逻辑电平的下定义:>
- 逻辑1:-3V~-15V
- 逻辑0:+3V~+15V》
RTS、CTS、DSR、DTR和DCD等控制线上:
- 信号有效(ON):+3V~+15V
- 信号无效(OFF):-3V~-15V
由于RS232的电平定义与大部分单片机系统(各种外设都基于一个单片机系统构建)使用的TTL电平标准不相符,所以以一般单片机系统与RS232之间的连接通常都加了一个这两种电平之间的转换芯片,如常用的MAX232就属于此类电平转换芯片。
二、RS232电平与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。于是TTL电平的输入低电平的噪声容限就只有(0.8-0)/2=0.4V,高电平的噪声容限为(5-2.4)/2=1.3V。
(三)RS232标准
逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次。
(三)区别
TTL电平信号之所以被广泛使用,原因是因为:通常我们采用二进制来表示数据。而且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。这是计算机处理器控制的设备内部各部分之间通信的标准技术。
rs232是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries AssociaTIon,EIA)
所制定的异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25)
的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和
COM2。RS232的电平标准为+12V为逻辑负,-12为逻辑正,TTL电平为5V为逻辑正,0为逻辑负
三、USB/TTL转232模块(以CH340芯片模块为例)的工作原理
(一)USB转串口原理
USB主机检测到USB转串口设备插入后,首先会对设备复位,然后开始USB枚举过程。USB枚举时过程会获取设备描述符、配置描述符、接口描述符等。描述符中会包含USB设备的厂商ID,设备ID和Class类别等信息。操作系统会根据该信息为设备匹配相应的USB设备驱动。
USB虚拟串口的实现在系统上依赖于USB转串口驱动,一般由厂家直接提供,也可以使用操作系统自带的CDC类串口驱动等。驱动主要分为2个功能,其一注册USB设备驱动,完成对USB设备的控制与数据通讯,其二注册串口驱动,为串口应用层提供相应的实现方法。
串口收发对应的驱动数据流向:
串口发送
- 串口应用发送数据->USB串口驱动获取数据->驱动将数据经过USB通道发送给USB串口设备->USB串口设备接收到数据通过串口发送
串口接收
- USB串口设备接收串口数据->将串口数据经过USB打包后上传给USB主机->USB串口驱动获取到通过USB上传的串口数据->驱动将数据保存在串口缓冲区提供给串口应用读取
(二)USB转串口芯片CH340G
1.CH340G芯片简介
其中CH340G是目前最常用的转换芯片,它不仅能在PC系统上面使用,也能使用在嵌入式linux系统里面,在linux内核版本中已有相应的驱动源码,很容易进行移植开发。
CH340G支持 5V 电源电压和 3.3V 电源电压甚至 3V 电源电压。
CH340G芯片内置了 USB 上拉电阻,D+和 D-引脚应该直接连接到 USB 总线上,USB工作在USB2.0全速模式。
CH340G 芯片内置了电源上电复位电路。CH340B 芯片还提供了低电平有效的外部复位输入引脚。
CH340G 芯片正常工作时需要外部向 XI 引脚提供 12MHz 的时钟信号。
硬件全双工串口,内置收发缓冲区,支持通讯波特率 50bps~2Mbps
2. 3.3V工作原理
LED1为单元灯,LED2在发送数据的时候灯会闪烁,LED3在接收到数据的时候会闪烁,可根据需求加上或者是删除。
CH340G_VCC为芯片的供电,可以是3.3V或者是5V,上述电路可以兼容5V电源和3.3V电源输入。电压确定的话可以去掉前面的稳压管和R1。TX/Rx的高电平与此电源相同,移植的时候需要注意。
芯片的TXD是芯片CH340G的发送,RXD是CH340G的接收,对接时需要注意信号方向。
3. 5V原理图
可以看到3.3V供电或5V供电主要区别是对V3引脚的处理不同,从数据手册可以看到:
四、总结
本次实验了解了串口协议和RS-232标准的原理,RS-232标准的优缺点:优点是 (1)信号线少(2)灵活的波特率选择(3)采用负逻辑传送(4)传送距离较远;不足的是(1)接口的信号电平值较高,易损坏接口电路的芯片(2)传输速率较低(3)抗噪声干扰性弱 (4)传输距离有限。了解了RS232电平与TTL电平的区别。CH340芯片USB/TTL转232的工作原理。
五、参考资料
RS-232串口通信协议
RS-232百度百科
串口通信协议百度百科
rs232电平和TTL电平的区别
USB转串口原理及应用
USB转串口芯片CH340G的使用,3.3V或5V供电电路