基于EZ-USB FX單片機(jī)的無線式數(shù)據(jù)通訊接口卡的設(shè)計(jì)
引言
針對(duì)在現(xiàn)實(shí)生活中,大量存在各種評(píng)審、評(píng)獎(jiǎng)活動(dòng),作者研制開發(fā)了一套無線式專家評(píng)審智能系統(tǒng),可進(jìn)行準(zhǔn)確、快捷的集體評(píng)審和表決工作。系統(tǒng)主要由中央數(shù)據(jù)處理站和若干智能評(píng)分器組成,采用輪叫輪詢的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。為了實(shí)現(xiàn)中央數(shù)據(jù)處理站計(jì)算機(jī)與各智能評(píng)分器之間的數(shù)據(jù)交換,并確保評(píng)審現(xiàn)場整潔規(guī)范,空間布局有條不紊,需要設(shè)計(jì)一塊無線通訊卡,這樣就無需在現(xiàn)場鋪設(shè)通訊電纜。基于此,作者開展了這方面的研究,并開發(fā)了一塊具有RS-232和USB兩種接口的無線式數(shù)據(jù)通訊接口卡,以滿足現(xiàn)場不同的使用要求。
2 總體方案
無線式數(shù)據(jù)通信接口卡原理框圖如圖1所示。接口卡以一塊EZ-USB FX單片機(jī)為中心,單片機(jī)通過RS-232或USB接口接收來自計(jì)算機(jī)的命令和數(shù)據(jù),然后經(jīng)nRF903調(diào)制后發(fā)送出去,返回的數(shù)據(jù)經(jīng)無線收發(fā)電路解調(diào)后,EZ-USB FX單片機(jī)可進(jìn)行正確的讀取,然后通過RS-232或USB接口傳送給計(jì)算機(jī)進(jìn)行處理。整個(gè)工作過程由X5043看門狗電路進(jìn)行監(jiān)控。LED信號(hào)指示燈用于指示接口卡的工作狀態(tài)。
3 硬件設(shè)計(jì)
3.1 EZ-USB FX單片機(jī)
Cypress公司推出的帶智能USB接口的EZ-USB FX單片機(jī),是一塊高度集成的集成電路。具有以下主要特性:
單片集成了USB收發(fā)器,智能串行接口引擎SIE(Serial Interface Engine)和增強(qiáng)型8051內(nèi)核;
支持USB1.1和2.0協(xié)議;
軟件:8051由內(nèi)部或外部RAM運(yùn)行代碼;
增強(qiáng)型8051每個(gè)指令周期只需4個(gè)機(jī)器周期,3個(gè)定時(shí)器/計(jì)數(shù)器,2個(gè)UART,1個(gè)I2C接口,24MHz/48MHz工作頻率;
3.3V工作電壓。
EZ-USB FX單片機(jī)為USB外設(shè)提供了一種高度集成的解決方案,極大地降低了USB設(shè)備的開發(fā)難度。其內(nèi)部增強(qiáng)的8051核心使用內(nèi)建RAM,可作為程序和數(shù)據(jù)存儲(chǔ)器使用,并賦予了EZ-USB FX“軟件”特性。此外,EZ-USB FX具有獨(dú)特的列舉和重列舉特性,這種特性可讓用戶的代碼通過USB總線下載到片內(nèi)RAM中,便于用戶對(duì)系統(tǒng)的再開發(fā)和升級(jí),實(shí)現(xiàn)柔性開發(fā)。
本設(shè)計(jì)中選用的EZ-USB FX單片機(jī)是CY7C64601-52NC。52腳PQFP封裝,4KB的RAM,16個(gè)可編程的I/O口,8位通用可編程接口GPIF(General Programmable Interface)。
3.2 RF無線收發(fā)芯片nRF903及其接口設(shè)計(jì)
nRF903是Nordic公司最新推出的單片無線433/868/915MHz收發(fā)芯片,該芯片采用藍(lán)牙核心技術(shù)設(shè)計(jì),在一個(gè)32腳的芯片中包括了三段高頻發(fā)射與接收、三段PLL合成、FSK/GMSK調(diào)制與解調(diào)、多頻道切換、異步通信接口等多種功能,是目前集成度最高的無限數(shù)據(jù)傳輸產(chǎn)品之一。傳輸速度最高可達(dá)76.8Kbps。采用低發(fā)射功率、高接收靈敏度的設(shè)計(jì),使用無需申請(qǐng)?jiān)S可證,開闊地的使用距離最遠(yuǎn)可達(dá)1000米。
nRF903可與單片機(jī)直接接口使用,nRF903與CY7C64601的連接原理如圖2所示。nRF903的DATA為雙向數(shù)據(jù)傳輸口,與CY7C64601的TxD0和RxD0相接串行傳輸數(shù)據(jù);TXEN用于選擇傳輸模式,TXEN為0時(shí),nRF903工作于接收方式,TXEN為1時(shí),nRF903工作于發(fā)射方式,用單片機(jī)的I/O口PC3控制;CFG_CLK用于配置寄存器時(shí)鐘、CFG_DATA用于配置寄存器數(shù)據(jù)、CS用于寄存器片選,分別用CY7C64601的PC7、PC6、PC5來進(jìn)行控制,對(duì)nRF903的工作頻率等參數(shù)進(jìn)行設(shè)置;STBY、PWR_DWM設(shè)置為0時(shí),nRF903工作于接收或發(fā)送正常工作狀態(tài)。
nRF903有三個(gè)工作頻段,170個(gè)信道,4種發(fā)射功率,4種外部始終頻率輸出,通過單片機(jī)對(duì)nRF903內(nèi)部的一個(gè)14位配置寄存器進(jìn)行設(shè)置,編程選擇nRF903的工作頻率,發(fā)射功率等參數(shù)。在配置過程中,首先通過單片機(jī)將TXEN設(shè)置為0,同時(shí)STBY、PWR_DMN也為0,使芯片工作在接受模式,以避免無意地在不希望的頻率進(jìn)行傳送。選取芯片外接振蕩器的頻率為11.0592MHz。nRF903的配置字通過CS、CFG_CLK、CFG_DATA組成的串行接口,在時(shí)鐘信號(hào)的控制下串行輸入內(nèi)部配置單元的數(shù)據(jù)移位寄存器。激活CS信號(hào)使能nRF903的配置模式,從最高位開始串行輸入14位配置字,CFG_DATA的位速度不可超過1Mbps,然后使CS無效,配置操作即完成。
3.3 EZ-USB FX外圍電路
EZ-USB FX工作電壓為3.3V,而USB總線提供的電源為5V。因此選用一塊Maxim公司的電壓轉(zhuǎn)換芯片MAX882實(shí)現(xiàn)從5V到3.3V的轉(zhuǎn)換。由于EZ-USB FX工作電壓為3.3V,為保證晶振能在低電壓的情況下可靠工作,在單片機(jī)XIN和XOUT之間接了一個(gè)1MΩ的反饋電阻。EZ-USB FX內(nèi)部8KB的代碼和數(shù)據(jù)存儲(chǔ)器都是RAM,沒有永久性的存儲(chǔ)器,EZ-USB FX必須通過I2C接口從外部E2PROM獲得代碼和數(shù)據(jù)。在主機(jī)列舉之前,EZ-USB FX內(nèi)核電路通過I2C接口從串行E2PROM讀取一個(gè)字節(jié),這個(gè)字節(jié)告訴內(nèi)核下一步該作什么。使用默認(rèn)模式時(shí),根據(jù)E2PROM字節(jié)識(shí)別設(shè)備,或從E2PROM調(diào)用固件。E2PROM選用Microchip公司的24LC64,存儲(chǔ)器容量為64KB。具體電路連接如圖2所示。MAX232的作用是實(shí)現(xiàn)RS-232電平和TTL電平之間的轉(zhuǎn)換。可編程看門狗監(jiān)控芯片X5043與EZ-USB FX之間采用SPI接口進(jìn)行數(shù)據(jù)傳輸。CY7C64601的USBD-和USBD+分別通過一個(gè)22Ω的電阻與USB總線的D-和D+相連,構(gòu)成USB總線接口。對(duì)EZ-USB FX單片機(jī)的復(fù)位包括USB總線的復(fù)位和8051的復(fù)位,圖2所示的上電復(fù)位和X5043復(fù)位均只對(duì)8051復(fù)位。
4 軟件設(shè)計(jì)
EZ-USB FX單片機(jī)軟件主要包括系統(tǒng)初始化、看門狗監(jiān)控程序、與計(jì)算機(jī)通訊和讀寫nRF903數(shù)據(jù)程序等4個(gè)部分。
4.1 系統(tǒng)初始化
系統(tǒng)初始化主要包括EZ-USB FX的初始化和X5043的初始化。EZ-USB FX的初始化程序是軟件設(shè)計(jì)中一個(gè)很重要的部分,包括8051的初始化和USB的初始化兩部分,下面對(duì)其進(jìn)行詳細(xì)介紹。
8051的初始化包括兩方面的初始化:I/O口初始化,寄存器初始化。EZ-USB FX是根據(jù)I/O口分配表對(duì)接口初始化。但是其I/O引腳結(jié)構(gòu)與標(biāo)準(zhǔn)8051有很大的不同,它由一個(gè)OE寄存器控制輸出緩沖器,OE=0,關(guān)閉輸出緩沖器,I/O引腳做輸入用;OE=1,打開輸出緩沖器,I/O引腳做輸出用,數(shù)據(jù)送入輸出寄存器。寄存器初始化主要是對(duì)EZ-USB FX內(nèi)部特殊寄存器和數(shù)據(jù)緩沖區(qū)的初始化。由于EZ-USB FX基于增強(qiáng)型8051架構(gòu),內(nèi)嵌USB內(nèi)核,因此有些普通8051沒有的內(nèi)部特殊寄存器需要進(jìn)行設(shè)置。
USB的初始化包括USB設(shè)備的初始化和USB傳輸通道的初始化。主機(jī)是通過獲取設(shè)備的描述符來獲得設(shè)備的屬性、傳輸方式等信息,而這些信息都通過設(shè)備描述符文件dscr.a51實(shí)現(xiàn)。以中斷傳輸為例,設(shè)備描述符的說明包括:設(shè)備描述符定義、設(shè)備配置描述符定義、接口描述符定義、輸入終端描述符定義和輸出終端描述符定義等。
4.2 通訊軟件
接口卡通訊軟件包括與計(jì)算機(jī)通訊和無線通訊軟件兩部分。圖3是EZ-USB FX單片機(jī)程序流程圖。
5 結(jié)束語
目前,基于EZ-USB FX設(shè)計(jì)的無線式數(shù)據(jù)通信接口卡已取得很好的實(shí)際應(yīng)用效果。通過簡單移植,可以很方便地將該方案應(yīng)用于其它無線通訊場合和USB外圍設(shè)備的設(shè)計(jì)中。
評(píng)論