基于PDIUSBD12的無(wú)線(xiàn)USB接口收發(fā)器的設計
1引言
通用串行總線(xiàn)(Universal Serial Bus,USB)為個(gè)人計算機外圍設備輸入輸出提供了新的接口標準。他使設備具有快速、熱插拔、即插即用、自動(dòng)配置的能力,并標準化了設備連接。同時(shí),USB的級聯(lián)星型拓撲結構不僅使得連接外部設備多達127個(gè),還解決了資源沖突、中斷請求、直接數據通道等問(wèn)題。傳統的收發(fā)器一般以RS232接口與PC機通信,其硬件實(shí)現簡(jiǎn)單。如果改為USB接口,將使無(wú)線(xiàn)/有線(xiàn)收發(fā)器具備USB通信的諸多優(yōu)點(diǎn)。
PDIUSBD12是一個(gè)完全符合USB11規范,性能優(yōu)化的USB器件,通常用于基于微控制器的系統,并與微控制器通過(guò)高速通用并行接口進(jìn)行通信,也支持本地DMA傳輸。該器件采用模塊化的方法實(shí)現一個(gè)USB接口。允許在眾多可用的微控制器中選擇最合適的作為系統微控制器。允許使用現存的體系結構并使固件投資減到最小。這種靈活性減少了開(kāi)發(fā)時(shí)間、風(fēng)險和成本,是開(kāi)發(fā)低成本且高效的USB外圍設備解決方案的一種最快途徑。
根據現場(chǎng)實(shí)際情況,選用TDX230RTMD電臺及配套天線(xiàn),該產(chǎn)品可提供語(yǔ)音或數據信號的透明傳輸,能適應各種點(diǎn)對點(diǎn)、點(diǎn)對多點(diǎn)的無(wú)線(xiàn)數據通信方式,具有收發(fā)一體、安裝方便、使用簡(jiǎn)單、性?xún)r(jià)比高、穩定可靠等特點(diǎn),廣泛用于各種數據的遠程采集、控制系統之中。
結合上述兩種技術(shù)的優(yōu)點(diǎn),設計了一種無(wú)線(xiàn)USB接口收發(fā)器,可進(jìn)行遠距離數據的無(wú)線(xiàn)傳輸。
2硬件電路設計
本文設計的無(wú)線(xiàn)USB接口收發(fā)器的硬件電路總體框圖如圖1所示。
Philips公司的PDIUSBD12芯片符合USB1.1規范,采用28腳SO或TSSOP封裝,可以在3.3±0.3 V或3.6~5.5 V兩種電壓下工作,內部集成SIE、320 B的FIFO緩存、收發(fā)器以及電壓調整電路和終結電阻器,提供2 MB/s速率的并行接口,具有全自治本地DM A功能,芯片提供的多重中斷模式有利于批量和等時(shí)數據傳輸模式。芯片還提供了可編程時(shí)鐘、上電復位和低電壓復位電路。芯片提供了雙倍的輸入輸出緩沖,在批量模式達到1MB/s數據傳輸率,同步模式也可達到1 MB/s數據傳輸率。
微控制器MCU采用Atmel公司的
圖2所示是采用了1個(gè)
3軟件部分設計
軟件設計主要包括兩部分:一是USB設備端的單片機軟件,主要完成USB協(xié)議處理與數據交換,以及其他應用功能程序。二是上位管理機端的程序,由USB通信程序和用戶(hù)服務(wù)程序通過(guò)USB通信程序與系統的設備接口通信,由系統完成USB協(xié)議的處理與數據傳輸。
3.1單片機方面軟件設計
單片機控制程序由三部分組成:初始化單片機和所有的外圍電路(包括PDIUSBD12);主循環(huán)部分,其任務(wù)是可中斷的;讀寫(xiě)中斷服務(wù)程序,其任務(wù)是對時(shí)間敏感的,必須馬上執行。
單片機和PDIUSBD12通信主要是靠單片機給PDIUSBD12發(fā)命令和數據實(shí)現的。PDIUSBD12的命令字可以分為三種:初始化命令字、數據流命令字和通用命令字。PDIUSBD12給出了各種命令的代碼和地址,單片機先給PDIUSBD12的命令地址發(fā)命令,根據不同命令的要求再發(fā)送和讀出不同的數據。因此,可以編寫(xiě)不同功能的函數,用函數實(shí)現各個(gè)命令,之后直接調用函數即可。
后臺D12中斷服務(wù)程序和模塊式無(wú)線(xiàn)數傳收發(fā)模塊中斷服務(wù)程序與前臺主循環(huán)程序之間的數據交換,通過(guò)事件標志和數據緩沖區來(lái)實(shí)現。后臺中斷服務(wù)程序由中斷觸發(fā),通過(guò)標志位與主模塊通信。主模塊循環(huán)掃描各標志位,對相應的標志位做出處理。例如,模塊式無(wú)線(xiàn)數傳收發(fā)模塊接收到有效數據后,送入串口觸發(fā)串口中斷,進(jìn)入模塊式無(wú)線(xiàn)數傳收發(fā)模塊中斷服務(wù)程序,將數據接收后放入數據緩沖區,然后設置UART_DATA標志,退出子模塊。主模塊查詢(xún)到UART_DATA被置位,則調用writendpoint()程序將數據發(fā)往PC。
根據USB協(xié)議,任何傳輸都是由主機開(kāi)始的,這樣
3.2主機方面軟件設計
上位機的程序主要調用4個(gè)API函數。根據上位機對USB端口的使用情況,用Delphi調用這4個(gè)函數就可以實(shí)現上位機對USB端口的操作。
Philips為用戶(hù)提供了D12的驅動(dòng)程序,但是用戶(hù)需要根據自己的要求更改inf文件,然后在Windows DDK中重新編譯連接生成新的驅動(dòng)程序,以滿(mǎn)足實(shí)際應用的需要。
在編寫(xiě)主機應用程序時(shí)要注意對主終端的操作,應該在程序中將數據緩存加大,Philips提供的驅動(dòng)程序支持64 B~64 kB的緩存,這樣可以有效減少設備和主機的握手時(shí)間,提高傳輸速度。程序編譯時(shí),需要注意保持編譯的路徑。
4結語(yǔ)
本文結合USB接口和無(wú)線(xiàn)通信兩種技術(shù)的優(yōu)點(diǎn),應用在多點(diǎn)測溫控制系統中,為PC和智能儀器之間提供了一種快速方便的數據交換方式。
采用對單片微處理器直接擴展USB接口技術(shù),連接簡(jiǎn)單,控制方便。隨著(zhù)USB技術(shù)的不斷發(fā)展,USB也會(huì )和串口一樣獲得廣泛的應用。
評論