LPC900系列单片机的红外串行通信(下)
- 格式:pdf
- 大小:125.79 KB
- 文档页数:10
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
LPC900系列单片机的红外串行通信(下)
1 概述
在LPC900系列单片机的红外串行通信上篇后面简称上篇中我们以LPC932A1为例讨
论了利用LPC932A1片内CCU模块和UART实现主从式红外通信的方法实践中还常常有这样的运用即利用一个数据采集器到现场采集各种数据然后再把数据资料上传给PC个人电脑在这种运用中数据采集器与现场通常是双向通信而数据采集器与PC则是单向通信即采集器到PC的单向上传通道
传统的通信方法以RS232接口居多也有些工业现场采用RS422/RS485标准接口的但是都连线麻烦操作不便现在我们尝试全部采用红外通信从而大大提高数据采集与上传的便利性 数据采集器与现场的通信可采用上篇中介绍的主从式双向红外通信这里不再赘述现在仍然以
LPC932A1为例来谈谈采集器与PC的单向红外串行通信
2 PC红外接收原理
2.1 RS232标准简介
现在的PC中一般已经集成了红外通信端口但由于其通信协议比较复杂与单片机接口不便为简便起见我们采用在PC的COM口RS232端口上扩展一个红外接收电路来实现在此首先对RS232标准作一个简单介绍
RS232是EIA(电子工业联合会)制定的一个串行通信推荐标准用于DTE与DCE的连接典型的DTE
是PC典型的DCE是调制解调器有效传输距离15米如果采用4~20mA的电流环则可达到1公里以上的通信距离RS232中共规定了25条信号线包括数据线控制线状态线等但是在实际应用中不一定要用到全部的信号线在早期的PC中通常配置有一个25针的串行口和一个9针的串行口而现
在生产的PC中两个串行口一律采用9针的DB9插座9针串行口的信号线定义如表1.1所示
引脚 名称 传输方向 描述 1 CD DTE<--DCE 载波检测Carrier Detect 2 RXD DTE<--DCE 接收数据(Receive Data) 3 TXD DTE-->DCE 发送数据(Transmit Data) 4 DTR DTE-->DCE 数据终端准备好(Data Terminal Ready) 5 GND DTE<-->DCE 系统地(System Ground) 6 DSR DTE<--DCE 数据设备准备好(Data Set Ready) 7 RTS DTE-->DCE 发送请求(Request to Send) 8 CTS DTE<--DCE 发送清除(Clear to Send) 9 RI DTE<--DCE 振铃指示(Ring Indicator) 表1.1 RS232信号线定义
2.2 红外接收扩展电路
这里我们认为DTE是PC那么就可以从表1.1中看到PC的输出脚有3个TXDDRT和RTSTXD
是串行数据发送端口波特率从110bps到115200bps需硬件支持DTE用DTR以告诉DCE已经准备
好接收数据并用RTS向DCE请求发送数据这两个信号主要用于硬件流量控制在红外接收扩展电路
中不需要进行流量控制而是利用DTR和RTS为接收电路提供电源我们知道标准的RS232电平是
负逻辑3V~15V表示逻辑03V~15V表示逻辑1这样只要使能DTR和RTS这两个引脚就
可以输出15V左右的电平从而给红外接收电路供电根据这样的设计思路红外接收扩展电路如图2.1
- 1 - 广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
162738495
J1PC 串行口D11N4148
D21N4148+C1100uF/25VDTRRTSR15123U2红外接收模块D3LED
TXDR32KRXDD41N4148Q19012R22KVin3GND2+5V1U1LM78L05
+C210uF/16VDTRRTSRXDTXD
图2.1 PC红外接收扩展电路
上图中D1D2和D4起隔离作用R1主要用来保护PC串口C1和C2用来滤波U1是三端稳压器为红外接收模块提供5V工作电源U2是三端集成红外接收模块一般接收中心频率为38KHz可以完成从红外接收滤波到解调的全部过程LED作为指示灯当接收到红外信号时LED会闪亮此电
路的关键之处在于DTRRTS和TXD三个引脚的接法DTR和RTS为电源供应脚可提供15V左右的
电源前提是需要在PC监控程序中使能TXD引脚为接收提供负电源TXD脚是数据发送脚为什么可
以提供负电源呢这正是本电路的巧妙之所在我们知道RS232协议标准中当不发送数据时TXD脚
输出低电平即15V左右在红外接收扩展电路中只具有红外接收功能而无发送功能因此正好可以利用TXD脚为接收提供低电平当没有接收到红外信号时红外接收模块的脚输出高电平三极管
Q1截止TXD通过D4把RXD脚下拉到低电平而当接收到红外信号时红外接收模块输出低电平三
极管Q1导通这时RXD脚变为高电平 3 LPC932A1红外发送原理
在上篇中红外线的载波是由CCU模块产生的但是在有些应用中CCU模块已作它用而且LPC900
系列有些型号没有配备CCU模块那么又如何产生载波呢PHILIPS公司已经为我们考虑到了这一点它
采用独特的设计思路使LPC900系列FLASH单片机的绝大部分型号都具有一个优秀而实用的特性这些单
片机中带有两个16位的定时/计数器定时器可设置为溢出时触发相应端口输出翻转或作为PWM输出LPC900系列单片机定时/计数器的工作模式有
模式013位定时/计数器最大的定时/计数值为213=8192
模式116位定时/计数器最大的定时/计数值为216=65536
模式28位自动重载模式最大的定时/计数值为28=256
模式3此模式下定时器1关闭定时器0的TH0及TL0作为两个独立的8位定时/计数器
模式6在该模式中定时器可以改变为一个具有256个定时器时钟周期的PWM
上面任何一种模式均可设置位溢出时触发相应端口翻转前提是要选择PCLK作为定时器的时钟源
我们可以看到在PWM模式模式6下PWM波的频率不可以调节一个PWM周期固定为256个定
时器时钟周期然而其占空比从0%~100%可调
在8位自动重载模式模式2下当设置为溢出触发相应端口翻转时从端口输出的只能是方波占
空比为50%且不可调但是其频率是可调的方波的频率Fosc/(4(256定时器重载值))
经过比较我们要生成38KHz的红外线载波频率只能采用8位自动重载模式利用定时器1的8位自动
重载模式生成载波的红外发射电路见图3.1
- 2 - 广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
Q29012
Q39012
D4INFRR9100R510K
R710KR61KR81KJ29VCCVCC
VCCP318P1018P309P2415P1117P1212P1311
VSS7P165P174P003P0126P0225P0324P0423P0522P0620P0719P201P212P2213P2314
P2516P2627P2728P15/RST6P1410VDD21U1LPC932X26MHzC820pF
C920pF+3V
RTC_CLKDATCLKDATOUTDATOUTKEY1R25100
DATCLK
A1
图3.1 红外发射电路
在图3.1中将J29连接到DATCLK这样只有当DATCLK和DATOUT都为低电平时D4才会发射
红外线DATCLK是定时器1的触发输出端每当定时器1溢出时DATCLK就翻转一次翻转频率设定
为38KHzDATOUT也就是LPC932A1的TXDUART串行输出脚进行串行数据的输出从而实现对
红外载频的调制
4 红外通信实验
实验步骤如下
按图1所示电路搭接红外接收扩展电路并连接到PC串口COM1或COM2注意要确保电
路连接正确之后才可以与PC串口相连尤其是红外接收模块的管脚三端稳压器的管脚和
二极管的极性都要正确
按图2所示电路搭接红外发射电路此电路可在周立功单片机公司开发的DP-932下载调试仪
上实现
在PC上运行串口调试助手或者自己编写的串口接收程序打开相应的COM口正确设定串口
参数本实验中的串口参数为波特率2400bps检验位无数据位8停止位1接收
的数据采用16进制显示使能DTR和RTS
将红外发射电路的发射管对准接收电路的红外接收模块按下KEY1键即通过红外线连续发射
16字节数据这时在PC的接收窗口中就可以看到接收到的数据
LPC932A1的软件流程如图4.1所示
- 3 - 广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925
LPC932A1软件流程
无
有
PC 发送16字节数据 有键按下吗 通信初始化
图4.1 LPC932A1软件流程
实验中需操作的特殊功能寄存器如下表
表4.1 寄存器 7 6 5 4 3 2 1 0 AUXR1 CLKLP EBRR ENT1 ENT0 SRST 0 - DPS TAMOD - - - T1M2 - - - T0M2 TMOD T1GATE T1C/T T1M1 T1M0 T0GATE T0C/T T0M1 T0M0 TH1 定时器1高字节 TL1 定时器1低字节 SSTAT DBMOD INTLO CIDIS DBISEL FE BR OE STINT SCON SM0/FE SM1 SM2 REN TB8 RB8 TI RI BRGCON - - - - - - SBRGS BRGEN BRGR1 波特率发生器高字节 BRGR0 波特率发生器低字节 表1 相关特殊功能寄存器
LPC932A1的详细资料请见http://www.zlgmcu.com/philips/lpc900/p89lpc932A1/P89LPC932A1_cn-01.pdf
5 注意事项
实验成功与否很大程度上取决于红外接收电路的电源供应在PC的红外接收扩展电路中采
用PC的串口输出脚DTR和RTS供电这就需要对其电源供应能力有所了解通常象IBM这样的品
牌机其串口输出比较标准高电平输出可达12V~15V单引脚的驱动电流可达15mA左右但
是现在有许多兼容机尤其是那些采用小主板的兼容机其串口的驱动能力比较弱输出高电平为
8V~9V左右驱动电流为7~8mA这样要驱动红外接收电路就比较勉强解决办法是增大图1
中的电容C1C2的容量减小或者去掉电阻R1对于有些PC机这样的办法仍然解决不了问题
这是为什么呢我们知道三端稳压器LM78L05通常需要输入输出电压差达到3V以上才能正常工作
也就是说如果其输入端电压低于8V时LM78L05将不能正常工作这时我们可以用一个5.1V1/2 W
的稳压二极管D5来代替三端稳压器LM78L05并把电阻R1增加到10改进的电路见图4这种
并联稳压电路的缺点是平时没有接收到红外线时电路的功耗也比较大只是比较而言其实电路的