在实际应用中,USART通常用于单片机与个人计算机之间的串行通信,但传统个人计算机上的串行接口使用的是RS-232协议,其逻辑电平与单片机的逻辑电平不匹配,无法直接相连,所以需要加入一个硬件的电平转换电路来实现两者的接口。这里先简单介绍RS-232协议,再介绍单片机如何通过USART与个人计算机通信。
RS-232是个人计算机上的标准通讯接口之一,是由美国电子工业协会(Electronic Industries Association,EIA)制定的异步传输标准接口。RS是英文Recommended Standard(推荐标准)的缩写,232为标准号,最新版本是RS-232-C。该标准定义了数据终端设备(DTE)和数据通信设备(DCE)之间的接口信号特性,其中DTE可以是计算机,DCE一般指调制解调器(MODEM)或单片机。
通常,RS-232接口以9个引脚(DB-9)或是25个引脚(DB-25)的形态出现,一般个人计算机上会有两组DB-9的RS-232接口,在Windows操作系统中分别称为COM1和COM2。
虽然在RS-232标准中定义了9种信号,但对于一般双工通信,仅需几条信号线就可实现,如一条发送线(TXD)、一条接收线(RXD)及一条地线(GND)。
RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。
RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制。例如,当采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一个原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。
RS-232-C标准定义了两种逻辑关系。对数据传输线采用了负逻辑关系:对控制信号线采用正逻辑关系。对于个人计算机与单片机通信,一般仅使用数据传输线即可。数据传输线TxD和RxD上的逻辑l用−3~−15V表示,逻辑0用+3~+15V表示。
PIC单片机输入输出的逻辑电平是TTL电平(+5V代表1,0V代表0),与RS-232-C的逻辑电平不匹配,所以PIC单片机的串行接口不能与个人计算机的串行口直接相连,必须通过专用的硬件电路来实现逻辑电平转换。在实际应用中,通常用专用的集成电路芯片来完成硬件电路设计,如MAX232。图9-4是单片机与个人计算机通过MAX232连接的典型电路图。
图9-4 PIC单片机与个人计算机通过MAX232连接的电路图
电路图在光盘位置:“\Example\Chapter9\S091\PICtoPC.DSN”。
图9-4中的U2是电平转换芯片MAX232,P1是DB-9的插座,用来与个人计算机端的DB-9接口相连。图9-4中隐藏了U2的VCC引脚和GND引脚、P1的GND引脚。按以上硬件电路使个人计算机和PIC单片机相连后,就可以编程实现双方通信。
图9-4中的COMPIM是ISIS中的一个特殊的元件,其全称是COM Port Physical InterfaceModel,翻译过来就是COM端口的物理接口模块。其功能就相当一个操作系统上实际存在的串行口。通过设置其属性可以指定其使用的实际的串行口,如图9-5所示。(www.daowen.com)
图9-5 COMPIM的属性窗口
通过COMPIM可以实现模拟的单片机与实际的串行接口设备连接的目的。例如,把一个串行口的短信收发模块连接到个人计算机的COM1上,然后在图9-5中把Physical Port属性改为COM1,把波特率和数据帧格式改为短信收发模块的要求格式。这样配置后就可以通过ISIS模拟的单片机通过COM1来控制真正的短信收发模块。连接示意图如图9-6所示。
图9-6 ISIS模拟单片机通过个人计算机的COM1口与真实的物理设备连接示意图
需要注意的是,在Windows操作系统默认情况下,通过COMPIM无法实现操作系统上的应用程序与ISIS中的单片机通信。因为在Windows操作系统中串行口不允许多个应用程序同时占用。ISIS中的COMPIM模块工作时会占用操作系统上的一个串行口,个人计算机上的应用程序要使用串行口也会占用一个串行口,两个程序不允许使用同一个串口。
为了解决这个问题,这里推荐一款虚拟串口软件串口虚拟器(SerialNull)。此软件可以虚拟出多对串行口,每对串行口是互相联通的。软件运行截图如图9-7所示。
图9-7 SerialNull软件运行截图
图9-7中COM3和COM4是用串口虚拟器虚拟出来的串行口,两者是互通的,也就是说程序发给COM3的数据,COM4会接收到。在不关闭此软件的情况下,Windows操作系统就相当于有了4个串行口。读者可以让ISIS中的COMPIM占用COM3,让个人计算机上的应用程序占用COM4。这样ISIS中的单片机就可以通过COMPIM与个人计算机上的应用程序(如超级终端或专用通信软件)通信了。
若没有硬件的情况下可以通过ISIS的模拟单片机、COMPIM、SerialNull和个人计算机上的软件来实现个人计算机与单片机通信程序的编写和调试。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。