请注意文档中,关于硬件的很多描述都带有“一般情况”这样的字样,表明是有特殊情况
的,但是在大多数情况下,去掉“一般情况”都是正确的。硬件很多情况下是“模糊”,偏向
于“差不多”,执着于“硬件系统长时间在特定环境下稳定运行最重要”,在设计上一定有
“取舍”,虽然有一个“最优解”,我们只能尽量接近“最优解”,但是永远不能到达。
硬件不像软件,每一个接口都是严格定义,不允许有差不多的情况。
1 基础电平知识
1.1 TTL 电平和 CMOS 电平
在大学电子专业课《数字电路分析》中,有提到电平的概念,通常有 TTL 和 CMOS 电
平,TTL 和 CMOS 又各自细分为多种电平,这里为了方便文字描述,统称为 TTL 电平。TTL
和 CMOS 是有很大区别的,但是对于纯粹的数字电路,区别不是很大,唯一要注意的是信号
的电压值,电压不一样则需要使用电平转换芯片,抬高或者降低信号的电压。
另外为了达成文档目标--为了让大家能够快速掌握串口的快速测试,这里将 TTL 根据电平
值分为 1.8VTTL 电平、3.3VTTL 电平和 5VTTL 电平。
TTL 电平在一般情况下,高电平(1.8V、3.3V 或者 5V)表示逻辑 1,0V 表示逻辑 0。
一般情况下,CMOS 和 TTL 进行数据传输的时候,只要电平相同和 IO 的类型,就可以正
常通信。
那么这里有一个基本的结论:TTL 电平的串口,无论是只要开发板和模快的 TTL 电平值相
同。开发板的 TX 和测试模组 RX 相接,开发板的 RX 和测试模组 TX 相接,共 GND 地,就可
以正常通信。
1.2 RS232 电平
接着来介绍 RS232 电平,关于 RS232 的知识,网上非常多,作者只介绍大家在使用过程
中最不容易和最重要的部分。
RS232 的电平要表示逻辑 1,电平是在-3V~-15V 之间,逻辑 0 的电平是在 3V~15V 之
间,如果电平在-3V~3V 之间,是没有任何意义的。
那么显然,无论是什么电平的 TTL 都是无法直接和 RS232 通信,一个用高电平表示逻辑
1,一个用高电平表示逻辑 0。
1.3 232 电平转换芯片-TTL 串口和 RS232 的通信
为了能够让 TTL 的串口和 RS232 串口通信,则需要将 TTL 电平的串口转化为 RS232 电
平。
将 TTL 的 5V 串口转换为 RS232 串口信号,需要 MAX232 芯片(MAX 是美信的意思,
是一个家公司的简写),将 TTL 的 3.3V 串口转化为 RS232 串口信号,需要 MAX3232。
现在很多 PC 上没有串口接口,但是可以使用 USB 转串口,一般情况下,我们默认 USB
转出来都是 RS232 串口信号(也有 USB 转 TTL 串口芯片)。
只要都转成了 RS232 电平,TX 接 RX,RX 接 TX,双方就可以通信了。
1.4 串口和模块通信需要注意的地方
特别要注意的只有一点:一定要弄清楚电平!
模块如果说是串口,那么它有可能是 RS232 电平的串口,可能是 TTL1.8V 串口,可能是
TTL3.3V 电平的串口,还有可能是 TTL5V 的串口。
关于开发板串口,参考用户手册上第一章,串口相关的小节,上面描述了每一个串口的电
平、网络标号、复用情况还有软件相关的设备节点。
另外就是 TX 和 RX 不同的硬件工程师,命名的时候可能不太一样,如果 TX 接 RX 不能正
常通信,可以交换一下。
2 快速测试方法
本节介绍如何快速测试开发板的串口,用于判断串口是否发送和接收正常。
先了解一下几个概念“全双工”、“半双工”和“单工”。
单工指的是,通信的双方,一端负责发,另外一端负责收,典型的例如收音机。
半双工指的是,通信的双方,两端都可以收发,但是同一时间点,一端发,另外一端就只
能收,不能同时收发。典型的如 RS485 和 USB 设备。
全双工指的是,通信的双方,两端可以同时收发,最典型的就是串口,发送的同时也可以
接收。也就是串口的 TX 和 RX 相互不干扰,可以同时工作。
串口是全双工的,那么如果开发板串口的 TX 和 RX 短接,会出现什么情况呢?当然是正
常的自发自收,发什么收什么。
例如为了测试 USB 转串口模块,可以将串口端的 TX 和 RX 端口短接(USB 速率远高于
串口,半双工的 USB 不会影响串口的自发自收),那么就会出现发送什么数据,就接收什么
数据。
快速测试开发板的串口,也可以用 TX 和 RX 短接的方法,最简单的方法使用一把小镊子
(导线也成),镊子的两个尖端,一端接 TX,一端接 RX,然后运行串口自发自收的测试程
序。
TX 和 RX 短接可以是 TTL 电平也可以是 RS232 电平,如下图所示,是 iTOP-4412 精英
版(迅为其它开发板类似)MAX3232 部分的原理图。
如上图所示,上面 4 个方框中的两个 pin 脚都可以短接,效果一样。R20 和 RS21 左端可
以短接、MAX3232 的 pin9 和 pin10、MAX3232 的 pin7 和 pin8 可以短接、CON2
(DB9)的 pin2 和 pin3 可以短接,这样开发板就可以实现自发自收。
请注意,如果要测试串口,请务必参考对应开发板的用户使用手册上第一章,串口相关的
小节,因为有一些模块需要用到串口,有一些串口是复用的。
将开发板的串口 TX 和 RX 短接,使用“iTOP-4412-Android-串口测试文档(升级版)
_V2.0.zip”独立文档中的串口程序,发送什么字符串,开发板就接收一样的字符串。
|