1第6章数据通信第6章数据通信6.1RS-232通信6.2RS-485通信6.3红外通信6.4无线通信2第6章数据通信设备之间的数据通信是产品设计中常见的要求,数据通信的实现方法较多,总体归纳为无线和有线两种。无线通信主要有红外、蓝牙、ZigBee等,有线通信主要有RS-232、USB、M_BUS、CAN等。本章主要介绍设计中常用的几种较易实现的通信方法,如RS-232、RS-485、红外和CC1100。对于蓝牙、USB等可以通过专用的转换芯片将其转换为常见的UART通信方式,本章不做具体讲解。3第6章数据通信6.0TTL电平通信接口如果两个单片机相距在1.5m之内,它们的串行口可直接相连,接口如下图所示。甲机RXD与乙机TXD端相连,乙机RXD与甲机TXD端相连。34第6章数据通信图7-17RS-232C双机通信接口电路6.1RS-232通信如果双机通信距离在1.5~15m之间时,可用RS-232C标准接口实现点对点的双机通信,接口如下图所示。图中的MAX232A是美国MAXIM(美信)公司生产的RS-232C双工发送器/接收器电路芯片。5第6章数据通信RS-232信号电平的规定:逻辑0:+5V~+15V逻辑1:-5V~-15V显然若采用RS-232接口通信,必须经过电平转换。6第6章数据通信7第6章数据通信8第6章数据通信6.1.2RS-232通信实例MSP430F133内部自带UART通信模块,因此,只需将SP3232的TTL/CMOS接收、发送端与单片机的UTXD、URXD相连,即可通过单片机内部UART通信模块将需要传输的数据通过RS-232通信方式实现。MSP430F133与SP3232接口电路如图6-2所示。9第6章数据通信图6-2MSP430F133与SP3232接口电路10第6章数据通信UART模块初始化子函数:将UART初始化为波特率1200;数据位8位;无奇偶校验;1位停止位。voidInit_UART1(void){U1CTL=CHAR+PEV+PENA;//8-bitcharacterU1TCTL=SSEL1;//UCLK=MCLKU1BR0=0x0A;//8MHz120011第6章数据通信U1BR1=0x1A;//8MHz1200U1MCTL=0x00;//8MHz1200modulationME2|=UTXE1+URXE1;//EnableUSART0TXD/RXDIE2|=URXIE1;//EnableUSART0RXinterruptP3SEL|=0x30;//P3.4,5=USART0TXD/RXDP3DIR|=0x10;//P3.4outputdirectionreturn;}12第6章数据通信UART发送数据子函数:UART发送一个字节数据,在程序中调用此函数,而不是使用中断。voidUART1_TX_byte(unsignedchardata){while((IFG2&UTXIFG1)!=UTXIFG1);//USART1TXbufferready?U1TXBUF=data;}13第6章数据通信UART接收数据子函数:该函数是一中断程序,在初始化时需将接收数据设置为中断,当收到数据后,程序自动进入该子程序处理。#pragmavector=USART1RX_VECTOR/*0xFFE6USART1Receive*/_interruptvoidusart1_rx_sever(void){inti;i=U1RXBUF;//处理接收的数据,如数据处理时间较长,则可将数据存在一个全局变量数组中,在此处置//标志位,在主程序中检测此处置的标志位来判断是否有数据需处理}14第6章数据通信图6-3RS-485接口标准网络的典型应用6.2RS-485通信15第6章数据通信虽然RS-485标准允许电路中出现多个发送器,但RS-485仅能工作于半双工方式,即任一时刻只允许一个发送器发送数据,而其他组件只能处于接收状态。RS-485标准的特点是抗干扰能力强、传输距离远、速率高。如果采用双绞线传输信号,最大传输速率为10Mb/s,传输距离为15m;如果最大传输速率为100kb/s,则可以传输1200m;如果最大传输速率为9600b/s,则传输距离可达1500m。RS-485标准最多允许在平衡电缆上连接32个发送器/接收器,特别适用于工业控制领域进行分布管理、联网检测控制等。16第6章数据通信6.2.1RS-485通信原理RS-485与RS-232不一样,数据信号采用差分传输方式,也称做平衡传输方式,即使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平为 +2 V~+6 V,是一个逻辑状态,负电平为 -2V~-6V,是另一个逻辑状态。RS-485中还有一个“使能”端,用于控制发送驱动器和传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称做“第三态”,即它是有别于逻辑“1”与“0”的第三态。17第6章数据通信接收端也作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在接收端A、B之间有大于 +200mV的电平时,输出正逻辑电平;当有小于 -200mV的电平时,输出负逻辑电平。接收器接收平衡线上的电平范围为200mV~6V。18第6章数据通信18RS-485双机通信接口电路RXDTXD可采用MAX485、VP3082、SN75176实现串口转485信号RX-4856.2.2RS-485通信芯片及应用19第6章数据通信图6-5HYM3082隔离通信电路20第6章数据通信随着移动计算设备和移动通信设备的日益普及,红外数据通信应用越来越多。红外通信技术由于成本低廉和广泛的兼容性等优点,已在近距离的无线数据传输领域占有重要地位。IrDA物理层协议提出了对工作距离、工作角度(视角)、光功率、数据速率等不同品牌设备互联时抗干扰能力的建议。当前红外通信距离最长为3m,接收角度为30°。6.3红外通信21第6章数据通信6.3.1IrDA及其通信协议IrDA即红外数据组织,是1993年6月成立的一个国际性组织,专门制订和推进能共同使用的低成本红外数据互连标准,支持点对点的工作模式。由于标准的统一和应用的广泛,更多的公司开始开发和生产IrDA模块,技术的进步也使得IrDA模块的集成度越来越高,体积也越来越小。IrDA1.0可支持最高115.2kb/s的通信速率,而IrDA1.1可以支持的通信速率达到4Mb/s。22第6章数据通信图6-6IrDA调制(3/16)RZI(反相归零码)23第6章数据通信6.3.2HDSL7001芯片概述红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲信号,再通过红外发射管发射红外信号。串行红外传输采用特定的脉冲编码标准,这种标准与RS-232串行传输标准不同。若两设备之间进行串行红外通信,就需要进行串口编码和IrDA编码之间的转换。红外通信接口由红外收发器和红外编码解码器构成。红外收发器包括发送器和接收器两部分。发送器(Transmitter)将从I/O或ENDEC接收来的位调制后的脉冲转换为红外脉冲发出。接收器(Receiver)检测到红外光脉冲,并将其转换为TTL或CMOS电脉冲。24第6章数据通信图6-7HSDL7001的引脚排列25第6章数据通信6.3.3HDSL3201芯片概述HSDL3201是一种廉价的红外收发器模块,工作电压为2.7V~3.6V。26第6章数据通信6.3.4红外通信实例本例主要是将单片机串口发送的数据由HDSL7001芯片按照红外传输的格式进行编码,将编码后的数据由HDSL3201芯片进行发送。HDSL3201芯片接收另一个红外设备发送的数据,将接收到的红外数据交给HDSL7001芯片进行解码处理,解码后的数据再传给单片机。红外通信电路如图6-9所示。27第6章数据通信图6-9红外通信电路28第6章数据通信UART模块初始化子函数:将UART初始化为波特率57600;数据位8位;无奇偶校验;1位停止位。voidInit_UART1(void){U1CTL=CHAR+PEV+PENA;//8-bitcharacterU1TCTL=SSEL1;//UCLK=MCLKU1BR0=0x8B;//8MHz57600U1BR1=0x00;//8MHz5760029第6章数据通信U1MCTL=0x00;//8MHz57600modulationME2|=UTXE1+URXE1;//EnableUSART0TXD/RXDIE2|=UTXIE1+URXIE1;//EnableUSART0RXTXinterruptP3SEL|=0x30;//P3.4,5=USART0TXD/RXDP3DIR|=0x10;//P3.4outputdirectionreturn;}30第6章数据通信UART发送数据子函数:该函数是一中断程序,在初始化时需将发送数据设置为中断,当有数据需发送时,程序自动进入该子程序处理。#pragmavector=USART1TX_VECTOR/*0xFFE4USART1Transmit*/_interruptvoidusart1_tx_sever(void){inti;if(point!=0){//缓冲区中有数据待发送31第6章数据通信U1TXBUF=UART1_TX_BUF[i];i++;if(ipoint){Point=0;}}}32第6章数据通信UART接收数据子函数:该函数是一中断程序,在初始化时需将接收数据设置为中断,当收到数据后,程序自动进入该子程序处理。#pragmavector=USART1RX_VECTOR/*0xFFE6USART1Receive*/_interruptvoidusart1_rx_sever(void){inti;i=U1RXBUF;//该处处理接收的数据}33第6章数据通信6.4.1无线通信概述无线通信应用非常广泛,常用于极低功率UHF无线收发器、315/433/868和915MHzISM/SRD波段系统、AMR-自动仪表读数、电子消费产品、RKE-两路远程无键登录、低功率遥感勘测、住宅和建筑自动控制、无线警报和安全系统、工业监测和控制、无线传感器网络等。6.4无线通信34第6章数据通信ISM频段(IndustrialScientificMedicalBand),中文意思分別是工业的(Industrial)、科学的(Scientific)和医学的(Medical),因此顧名思義ISM频段就是各國挪出某一段頻段主要開放給工业,科学和医学機構使用。应用这些频段无需许可证或費用,只需要遵守一定的发射功率(一般低于1W),并且不要对其它频段造成干扰即可。ISM频段在各国的规定并不统一。如在美国有三个频段902-928MHz、2400-2484.5MHz及5725-5850MHz,而在欧洲900MHz的频段则有部份用于GSM通信。而2.4GHz为各国共同的ISM频段。因此无线局域网(IEEE802.11b/IEEE802.11g),蓝牙,ZigBee等无线网络,均可工作在2.4GHz频段上。35第6章数据通信常用无线通信芯片(模块)无线通信芯片(模块)一般有NRF24L01、NRF401、NRF905等等。NRF905模块NRF401模块NRF24L01模块