摘要:针对采用芯片nRF905的LED屏无线通信,分别给出了上位机和下位机的系统框图,分析系统的功耗,比较无线模块和串口通信的通信速率,验证系统的可行性,设计串口通信协议。为保证数据质量,设计了数据通信协议,针对串口数据的nRF905分包转发,设计了无线芯片通信协议。例举了状态机的5种状态,介绍状态间的转换条件,巧妙地编程设计了通信数据的定时器检查,论述了基于状态机的嵌入式单片机软件编程。
关键词:nRF905;单片机ATmega16A;可行性分析;状态机
现行市场上的LED屏,多采用异步串口、TCP/IP接口等有线和GPRS无线进行通信。对于装修计划中的LED屏,即使提前布线或预留线缆空间,在线缆损坏或调试LED屏还是有诸多不利条件。技术成熟的GPRS无线模块,价格昂贵,不适用于大众场合。针对普遍使用的串口通信控制的LED屏,本文介绍了采用nRF905芯片为核心的硬件电路,论述了无线通信系统中的功耗估计、速率适配、串口与无线的通信协议设计和嵌入式单片机的软件设计,实现单片机控制串口的无线通信。
1 硬件设计
1.1 硬件总体框图
硬件框图如图1和图2所示。图1为上位机框图,电路板上的单片机收到计算机发来的控制数据,通过无线模块转发。图2为下位机框图,单片机将无线模块收到的数据,通过串口发给LED屏的电路控制板。LED屏回复数据的传输方向正好相反。
采用ProtELDXP绘制电路原理图和双面PCB板,使用JTAG mk II在AVR Studi04下编写基于单片机的嵌入式软件,采用GCC编译器进行编译连接。
1.2 电路设计
(1)单片机ATmega16A
采用芯片LM1117将DC 9 V稳压到DC 3.3 V,对单片机ATmega16A、芯片nRF905、芯片MAX3232进行供电。串口通信采用芯片MAX3232进行逻辑电平的转换。系统采用高性能、低功耗的8位AVR微处理器ATmega16A单片机。该单片机具有16 KB的系统内可编程FLASH、512 B的E2PROM和1 KB的SRAM,供嵌入式软件使用;在线调试的JTAG端口,丰富了系统的调试手段;独立的定时器和可编程的串口,加强了系统的功能。单片机ATmega16A上的SPI接口,可保证无线芯片nRF905的无缝连接。
(2)无线芯片nRF905
NORDIC公司的无线芯片nRF905采用高效的GFSK调制,使用开放的ISM频段,工作速率可达50 Kb/s,收发模式切换时间短,功耗低,内置硬件CRC校验和点对多点的通信地址控制,这些优点特别适合工业控制场合。
1.3 可行性分析
1.3.1 通信速率
nRF905无线收发芯片的最高工作速率50 Kb/s。PC机端的控制软件可以设置串口的工作速率,典型波特率设置为9 600 b/s或115 200 b/s。串口的波特率的每个字节加上起始位、停止位和奇偶校验位,经计算,串口工作速率小于无线芯片的工作速率,因此,可以采用无线芯片nRF905转发串口数据进行通信。
1.3.2 功耗估计
(1)单片机ATmega16A的耗散功率条件:温度,25℃;单片机工作晶振:1 MHz;工作电压,3.3 V。
激活模式:功率P=0.6×3.3=1.95 mW
空闲模式:功率P=0.2×3.3=0.66 mW。
(2)芯片MAX232的耗散功率工作电压:V=3.3 V。
最大工作电流:I=1 mA。
典型工作电流:I=0.3 mA。
则最大功耗:P=VI=3.3 mW。
典型功耗:P=W=0.99 mW。