USB在PCR儀器嵌入式系統中的應用
隨著(zhù)U盤(pán)的普遍使用和USB技術(shù)的嵌入式系統應用,方便用戶(hù)進(jìn)行程序修改和程序的存儲,PCR設計中采用可以熱插拔的USB接口,即在PCR硬件系統中加入了USB主控芯片,使其能夠對U盤(pán)等存儲設備進(jìn)行讀寫(xiě)操作,從而實(shí)現數據的存儲和轉移。
本文引用地址:http://dyxdggzs.com/article/201609/303665.htm1 USB系統的硬件設計
在數據采集系統中,USB的應用大體可以采用兩種方案:一是直接采用集成USB設備接口的嵌入式微控制器;二是采用單獨的控制器和獨立的USB設備接口芯片。
為增強系統應用的靈活性,該方案采用瑞薩單片機M30627FJPGP,加上USB設備接口芯片搭建硬件系統,具有低成本、易移植的特點(diǎn)。設計中,USB 設備接口芯片采用CH375,涉及框圖如圖1所示。CH375是一款符合USB 2.0協(xié)議的USB總線(xiàn)通用接口芯片,支持主機(HOST)方式和設備(SLAVE)方式,并可以動(dòng)態(tài)地切換主機和設備方式。

CH375芯片提供了通用的被動(dòng)并行接口,包括:8位雙向數據總線(xiàn)D0~D7、讀選通輸入引腳RD、寫(xiě)選通輸入引腳WR、片選輸入引腳CS、中斷輸出引腳 INT以及地址輸入引腳A0。CH375以總線(xiàn)方式掛接在單片機數據總線(xiàn)上,并且與多個(gè)外圍器件共存。單片機通過(guò)RD,WR高位地址譯碼產(chǎn)生片選CS和地址線(xiàn)P68(接CH375的A0引腳)的綜合控制,完成與CH375的通信。外擴USB電路如圖2所示。

CH375芯片的RD和WR分別連接到單片機的讀選通輸出引腳和寫(xiě)選通輸出引腳。CS由單片機的CS4選通。INT輸出的中斷請求是低電平有效,可以連接到單片機的外部中斷上,單片機使用中斷方式獲知中斷請求。
當CS375(即CS)為低電平時(shí),單片機可以與CH375進(jìn)行通信操作。此時(shí),當WR為高電平,RD和P68都為低電平時(shí),CH375中的數據通過(guò) D0~D7輸出;當RD為高電平且CS和WR及P68都為低電平時(shí),D7~D0上的數據被寫(xiě)入CH375芯片中;當RD為高電平且CS和WR都為低電平而 A0為高電平時(shí),D7~D0上的數據被作為命令碼寫(xiě)入CH375芯片中。
CH375芯片的UD+和UD-引腳直接連接到USB總線(xiàn)上。CH375芯片內置了電源上電復位電路,并可以產(chǎn)生復位信號。為確保上電復位次序,系統設計中,單片機的復位信號是通過(guò)CH375產(chǎn)生的,并將單片機與CH375共同接到外部復位電路上。
CH375芯片正常工作時(shí)需要外部為其提供12 MHz的時(shí)鐘信號,在XI和XO引腳之間連接一個(gè)標稱(chēng)頻率為12 MHz的晶體,并且分別為XI和XO引腳對地連接一個(gè)容量為30 pF的高頻振蕩電容。
CH375芯片支持5 V電源電壓或者3.3 V電源電壓。該系統使用5 V工作電壓,并且V3引腳處外接容量為O.01 μF的電源退耦電容。
2 USB系統的軟件設計
根據USB 2.O協(xié)議,在一個(gè)USB系統中,任何一次通信都是由USB主機發(fā)起的。USB設備根據主機發(fā)來(lái)的命令給予響應,執行相應的操作。在USB系統中,其軟件包括以下幾個(gè)部分:主機應用程序、設備驅動(dòng)程序和設備固件程序。主機用于程序為用戶(hù)提供設備應用的操作平臺和交互界面,完成數據的處理和轉換,向設備發(fā)出控制命令等。設備驅動(dòng)程序是USB設備正常工作的基礎,它提供了設備接人系統時(shí)要用到的引導文件、設備信息文件等。
2.1 動(dòng)態(tài)鏈接庫
系統應用中CH375提供了設備方式下標準驅動(dòng)CH375WDM.INF和動(dòng)態(tài)鏈接庫 CH375DL L.DLL,通過(guò)加載驅動(dòng)信息可以在應用程序中直接調用動(dòng)態(tài)鏈接庫。CH375在計算機端提供應用層接口。應用層接口是由CH375動(dòng)態(tài)鏈接庫DLL提供的面向功能應用的API,所有API在調用后都有操作狀態(tài)返回,但不一定有應答數據。CH375動(dòng)態(tài)鏈接庫提供的API包括:設備管理API、數據傳輸 API、中斷處理API。
設計中采用C語(yǔ)言作為計算機端應用軟件的開(kāi)發(fā)平臺,首先需要將CH375的動(dòng)態(tài)鏈接庫、驅動(dòng)程序添加到到編譯環(huán)境中。動(dòng)態(tài)鏈接庫的使用,簡(jiǎn)化了USB設備開(kāi)發(fā)的步驟,降低了開(kāi)發(fā)難度,為系統調試節省了時(shí)間。
2.2 應用程序與設備間的通信
通過(guò)動(dòng)態(tài)鏈接庫的數據傳輸函數,CH375在與M30627FJPGP之間提供了端對端的連接。應用程序與設備固件間的通信采用請求加應答方式,該通信方式具有較好的交互性和可控性。請求加應答方式使用一個(gè)下傳的主動(dòng)請求和一個(gè)上傳的被動(dòng)應答進(jìn)行交互式的雙向數據通信,下傳與上傳一一對應,相互關(guān)聯(lián)。所有的通信都由客戶(hù)應用程序發(fā)起,然后以接收到M30627FJPGP的應答結束。
2.3 固件程序設計
CH375與M30627FJPGP之間設計成完全的中斷驅動(dòng)。當單片機處理前臺任務(wù)時(shí),USB的傳輸可在后臺進(jìn)行,這就確保了最佳的傳輸速率和更好的軟件結構,同時(shí)簡(jiǎn)化了編程和調試。
后臺ISR(中斷服務(wù)程序)和前臺主程序循環(huán)之間的數據交換可以通過(guò)事件標志和數據緩沖區來(lái)完成,其實(shí)現原理如圖3所示。

應用中的單片機讀寫(xiě)U盤(pán)軟件可分成兩大部分:應用程序和固件程序。應用程序完成系統的數據采集、處理任務(wù)、外圍控制等功能,固件程序處理底層的USB 通信協(xié)議、文件系統,完成數據在USB總線(xiàn)上的可靠傳輸和在U盤(pán)上的存取操作。為方便在不同控制器或應用系統上進(jìn)行移植,固件采取積木式結構,如圖4所示。

2.4 USB讀寫(xiě)操作
USB讀寫(xiě)操作可根據不同的系統要求設定執行程序。在PCR儀系統設計中,M30627FJPGP將通過(guò)-A/D通道采集到的數據向U盤(pán)內指定的文件: ADC_DATA.TXT追加數據。開(kāi)機后,單片機向CH375寫(xiě)入配置字,設定其進(jìn)入主控(Host)模式,進(jìn)人數據采集狀態(tài),等待USB總線(xiàn)事件發(fā)生。U盤(pán)追加數據流程如圖5所示。
評論