<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于單片機的無線式數據通訊接口卡的設計

          基于單片機的無線式數據通訊接口卡的設計

          作者: 時間:2011-12-13 來源:網絡 收藏

          引言

          針對在現實生活中,大量存在各種評審、評獎活動,作者研制開發(fā)了一套專家評審智能系統(tǒng),可進行準確、快捷的集體評審和表決工作。系統(tǒng)主要由中央數據處理站和若干智能評分器組成,采用輪叫輪詢的網絡拓撲結構。為了實現中央數據處理站計算機與各智能評分器之間的數據交換,并確保評審現場整潔規(guī)范,空間布局有條不紊,需要設計一塊無線通訊卡,這樣就無需在現場鋪設通訊電纜。基于此,作者開展了這方面的研究,并開發(fā)了一塊具有RS-232和USB兩種接口的,以滿足現場不同的使用要求。
          2 總體方案
          數據通信接口卡原理框圖如圖1所示。接口卡以一塊EZ-USB FX為中心,通過RS-232或USB接口接收來自計算機的命令和數據,然后經nRF903調制后發(fā)送出去,返回的數據經無線收發(fā)電路解調后,EZ-USB FX可進行正確的讀取,然后通過RS-232或USB接口傳送給計算機進行處理。整個工作過程由X5043看門狗電路進行監(jiān)控。LED信號指示燈用于指示接口卡的工作狀態(tài)。


          3 硬件設計
          3.1 EZ-USB FX單片機
          Cypress公司推出的帶智能USB接口的EZ-USB FX單片機,是一塊高度集成的集成電路。具有以下主要特性:
          ?單片集成了USB收發(fā)器,智能串行接口引擎SIE(Serial Interface Engine)和增強型8051內核;
          ?支持USB1.1和2.0協(xié)議;
          ?軟件:8051由內部或外部RAM運行代碼;
          ?增強型8051每個指令周期只需4個機器周期,3個定時器/計數器,2個UART,1個I2C接口,24MHz/48MHz工作頻率;
          ?3.3V工作電壓。
          EZ-USB FX單片機為USB外設提供了一種高度集成的解決方案,極大地降低了USB設備的開發(fā)難度。其內部增強的8051核心使用內建RAM,可作為程序和數據存儲器使用,并賦予了EZ-USB FX“軟件”特性。此外,EZ-USB FX具有獨特的列舉和重列舉特性,這種特性可讓用戶的代碼通過USB總線下載到片內RAM中,便于用戶對系統(tǒng)的再開發(fā)和升級,實現柔性開發(fā)。
          本設計中選用的EZ-USB FX單片機是CY7C64601-52NC。52腳PQFP封裝,4KB的RAM,16個可編程的I/O口,8位通用可編程接口GPIF(General Programmable Interface)。
          3.2 RF無線收發(fā)芯片nRF903及其接口設計
          nRF903是Nordic公司最新推出的單片無線433/868/915MHz收發(fā)芯片,該芯片采用藍牙核心技術設計,在一個32腳的芯片中包括了三段高頻發(fā)射與接收、三段PLL合成、FSK/GMSK調制與解調、多頻道切換、異步通信接口等多種功能,是目前集成度最高的無限數據傳輸產品之一。傳輸速度最高可達76.8Kbps。采用低發(fā)射功率、高接收靈敏度的設計,使用無需申請許可證,開闊地的使用距離最遠可達1000米。
          nRF903可與單片機直接接口使用,nRF903與CY7C64601的連接原理如圖2所示。nRF903的DATA為雙向數據傳輸口,與CY7C64601的TxD0和RxD0相接串行傳輸數據;TXEN用于選擇傳輸模式,TXEN為0時,nRF903工作于接收方式,TXEN為1時,nRF903工作于發(fā)射方式,用單片機的I/O口PC3控制;CFG_CLK用于配置寄存器時鐘、CFG_DATA用于配置寄存器數據、CS用于寄存器片選,分別用CY7C64601的PC7、PC6、PC5來進行控制,對nRF903的工作頻率等參數進行設置;STBY、PWR_DWM設置為0時,nRF903工作于接收或發(fā)送正常工作狀態(tài)。
          nRF903有三個工作頻段,170個信道,4種發(fā)射功率,4種外部始終頻率輸出,通過單片機對nRF903內部的一個14位配置寄存器進行設置,編程選擇nRF903的工作頻率,發(fā)射功率等參數。在配置過程中,首先通過單片機將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讀取一個字節(jié),這個字節(jié)告訴內核下一步該作什么。使用默認模式時,根據E2PROM字節(jié)識別設備,或從E2PROM調用固件。E2PROM選用Microchip公司的24LC64,存儲器容量為64KB。具體電路連接如圖2所示。MAX232的作用是實現RS-232電平和TTL電平之間的轉換。可編程看門狗監(jiān)控芯片X5043與EZ-USB FX之間采用SPI接口進行數據傳輸。CY7C64601的USBD-和USBD+分別通過一個22Ω的電阻與USB總線的D-和D+相連,構成USB總線接口。對EZ-USB FX單片機的復位包括USB總線的復位和8051的復位,圖2所示的上電復位和X5043復位均只對8051復位。


          4 軟件設計
          EZ-USB FX單片機軟件主要包括系統(tǒng)初始化、看門狗監(jiān)控程序、與計算機通訊和讀寫nRF903數據程序等4個部分。
          4.1 系統(tǒng)初始化
          系統(tǒng)初始化主要包括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內部特殊寄存器和數據緩沖區(qū)的初始化。由于EZ-USB FX基于增強型8051架構,內嵌USB內核,因此有些普通8051沒有的內部特殊寄存器需要進行設置。
          USB的初始化包括USB設備的初始化和USB傳輸通道的初始化。主機是通過獲取設備的描述符來獲得設備的屬性、傳輸方式等信息,而這些信息都通過設備描述符文件dscr.a51實現。以中斷傳輸為例,設備描述符的說明包括:設備描述符定義、設備配置描述符定義、接口描述符定義、輸入終端描述符定義和輸出終端描述符定義等。
          4.2 通訊軟件
          接口卡通訊軟件包括與計算機通訊和無線通訊軟件兩部分。圖3是EZ-USB FX單片機程序流程圖。


          5 結束語
          目前,基于EZ-USB FX設計的無線式數據通信接口卡已取得很好的實際應用效果。通過簡單移植,可以很方便地將該方案應用于其它無線通訊場合和USB外圍設備的設計中。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();