基于EZ-USB FX单片机的无线式数据通讯接口卡的设计
扫描二维码
随时随地手机看文章
引言
针对在现实生活中,大量存在各种评审、评奖活动,作者研制开发了一套无线式专家评审智能系统,可进行准确、快捷的集体评审和表决工作。系统主要由中央数据处理站和若干智能评分器组成,采用轮叫轮询的网络拓扑结构。为了实现中央数据处理站计算机与各智能评分器之间的数据交换,并确保评审现场整洁规范,空间布局有条不紊,需要设计一块无线通讯卡,这样就无需在现场铺设通讯电缆。基于此,作者开展了这方面的研究,并开发了一块具有RS-232和USB两种接口的无线式数据通讯接口卡,以满足现场不同的使用要求。
2 总体方案
无线式数据通信接口卡原理框图如图1所示。接口卡以一块EZ-USB FX单片机为中心,单片机通过RS-232或USB接口接收来自计算机的命令和数据,然后经nRF903调制后发送出去,返回的数据经无线收发电路解调后,EZ-USB FX单片机可进行正确的读取,然后通过RS-232或USB接口传送给计算机进行处理。整个工作过程由X5043看门狗电路进行监控。LED信号指示灯用于指示接口卡的工作状态。
500)this.style.width=500;" border="0" />
3 硬件设计
3.1 EZ-USB FX单片机
Cypress公司推出的带智能USB接口的EZ-USB FX单片机,是一块高度集成的集成电路。具有以下主要特性:
•单片集成了USB收发器,智能串行接口引擎SIE(Serial Interface Engine)和增强型8051内核;
•支持USB1.1和2.0协议;
•软件:8051由内部或外部RAM运行代码;
•增强型8051每个指令周期只需4个机器周期,3个定时器/计数器,2个UART,1个I2C接口,24MHz/48MHz工作频率;
•3.3V工作电压。
EZ-USB FX单片机为USB外设提供了一种高度集成的解决方案,极大地降低了USB设备的开发难度。其内部增强的8051核心使用内建RAM,可作为程序和数据存储器使用,并赋予了EZ-USB FX“软件”特性。此外,EZ-USB FX具有独特的列举和重列举特性,这种特性可让用户的代码通过USB总线下载到片内RAM中,便于用户对系统的再开发和升级,实现柔性开发。
本设计中选用的EZ-USB FX单片机是CY7C64601-52NC。52脚PQFP封装,4KB的RAM,16个可编程的I/O口,8位通用可编程接口GPIF(General Programmable Interface)。
3.2 RF无线收发芯片nRF903及其接口设计
nRF903是Nordic公司最新推出的单片无线433/868/915MHz收发芯片,该芯片采用蓝牙核心技术设计,在一个32脚的芯片中包括了三段高频发射与接收、三段PLL合成、FSK/GMSK调制与解调、多频道切换、异步通信接口等多种功能,是目前集成度最高的无限数据传输产品之一。传输速度最高可达76.8Kbps。采用低发射功率、高接收灵敏度的设计,使用无需申请许可证,开阔地的使用距离最远可达1000米。
nRF903可与单片机直接接口使用,nRF903与CY7C64601的连接原理如图2所示。nRF903的DATA为双向数据传输口,与CY7C64601的TxD0和RxD0相接串行传输数据;TXEN用于选择传输模式,TXEN为0时,nRF903工作于接收方式,TXEN为1时,nRF903工作于发射方式,用单片机的I/O口PC3控制;CFG_CLK用于配置寄存器时钟、CFG_DATA用于配置寄存器数据、CS用于寄存器片选,分别用CY7C64601的PC7、PC6、PC5来进行控制,对nRF903的工作频率等参数进行设置;STBY、PWR_DWM设置为0时,nRF903工作于接收或发送正常工作状态。
nRF903有三个工作频段,170个信道,4种发射功率,4种外部始终频率输出,通过单片机对nRF903内部的一个14位配置寄存器进行设置,编程选择nRF903的工作频率,发射功率等参数。在配置过程中,首先通过单片机将TXEN设置为0,同时STBY、PWR_DMN也为0,使芯片工作在接受模式,以避免无意地在不希望的频率进行传送。选取芯片外接振荡器的频率为11.0592MHz。nRF903的配置字通过CS、CFG_CLK、CFG_DATA组成的串行接口,在时钟信号的控制下串行输入内部配置单元的数据移位寄存器。激活CS信号使能nRF903的配置模式,从最高位开始串行输入14位配置字,CFG_DATA的位速度不可超过1Mbps,然后使CS无效,配置操作即完成。
3.3 EZ-USB FX外围电路
EZ-USB FX工作电压为3.3V,而USB总线提供的电源为5V。因此选用一块Maxim公司的电压转换芯片MAX882实现从5V到3.3V的转换。由于EZ-USB FX工作电压为3.3V,为保证晶振能在低电压的情况下可靠工作,在单片机XIN和XOUT之间接了一个1MΩ的反馈电阻。EZ-USB FX内部8KB的代码和数据存储器都是RAM,没有永久性的存储器,EZ-USB FX必须通过I2C接口从外部E2PROM获得代码和数据。在主机列举之前,EZ-USB FX内核电路通过I2C接口从串行E2PROM读取一个字节,这个字节告诉内核下一步该作什么。使用默认模式时,根据E2PROM字节识别设备,或从E2PROM调用固件。E2PROM选用Microchip公司的24LC64,存储器容量为64KB。具体电路连接如图2所示。MAX232的作用是实现RS-232电平和TTL电平之间的转换。可编程看门狗监控芯片X5043与EZ-USB FX之间采用SPI接口进行数据传输。CY7C64601的USBD-和USBD+分别通过一个22Ω的电阻与USB总线的D-和D+相连,构成USB总线接口。对EZ-USB FX单片机的复位包括USB总线的复位和8051的复位,图2所示的上电复位和X5043复位均只对8051复位。
500)this.style.width=500;" border="0" />
4 软件设计
EZ-USB FX单片机软件主要包括系统初始化、看门狗监控程序、与计算机通讯和读写nRF903数据程序等4个部分。
4.1 系统初始化
系统初始化主要包括EZ-USB FX的初始化和X5043的初始化。EZ-USB FX的初始化程序是软件设计中一个很重要的部分,包括8051的初始化和USB的初始化两部分,下面对其进行详细介绍。
8051的初始化包括两方面的初始化:I/O口初始化,寄存器初始化。EZ-USB FX是根据I/O口分配表对接口初始化。但是其I/O引脚结构与标准8051有很大的不同,它由一个OE寄存器控制输出缓冲器,OE=0,关闭输出缓冲器,I/O引脚做输入用;OE=1,打开输出缓冲器,I/O引脚做输出用,数据送入输出寄存器。寄存器初始化主要是对EZ-USB FX内部特殊寄存器和数据缓冲区的初始化。由于EZ-USB FX基于增强型8051架构,内嵌USB内核,因此有些普通8051没有的内部特殊寄存器需要进行设置。
USB的初始化包括USB设备的初始化和USB传输通道的初始化。主机是通过获取设备的描述符来获得设备的属性、传输方式等信息,而这些信息都通过设备描述符文件dscr.a51实现。以中断传输为例,设备描述符的说明包括:设备描述符定义、设备配置描述符定义、接口描述符定义、输入终端描述符定义和输出终端描述符定义等。
4.2 通讯软件
接口卡通讯软件包括与计算机通讯和无线通讯软件两部分。图3是EZ-USB FX单片机程序流程图。
5 结束语
目前,基于EZ-USB FX设计的无线式数据通信接口卡已取得很好的实际应用效果。通过简单移植,可以很方便地将该方案应用于其它无线通讯场合和USB外围设备的设计中。