1 引言
數據采集是指采集溫度、壓力、流量、位移等信號量.再由計算機進行存儲、處理、顯示或打印的過程。相應的系統(tǒng)稱為數據采集系統(tǒng)。目前在統(tǒng)一的USB接口上實現了中低速外設的通用連接,例如鍵盤、鼠標、游戲桿、顯示器、數字音箱及MODEM等。USBl.0的數據傳輸率可達到12 Mb/s.USB2.0的數據傳輸速率可達480 Mb,s,對于數據采集系統(tǒng),有著不可比擬的優(yōu)點。如何將USB2.0接口應用到高速數據采集系統(tǒng)中,是今后數據采集系統(tǒng)的一個研究方向。
2 系統(tǒng)總體設計
系統(tǒng)的任務是實現一個數據采集系統(tǒng),該采集系統(tǒng)采集瀝青拌和站主機送往打印機的數據,并將其傳到計算機供數據處理,如圖1所示。
3 系統(tǒng)硬件實現
圖2給出了現有的瀝青拌和站數據采集系統(tǒng)框圖,是以8051單片機作為控制器,利用拌和站主機送往打印機的數據同步信號/STROBE,將打印數據暫存在采集系統(tǒng)的FIFO中.之后保存在FLASH AM29F040中,再利用標準串行接口傳送到主機。
該設計對現有的系統(tǒng)進行了改進,并提出一種基于USB2.0的高速數據采集系統(tǒng),采用EZ_USB FX2系列器件CY7C68013,將串口改為USB2.0接口,同時充分利用EZ-USB的特性,在采集系統(tǒng)中去掉FIFO。其系統(tǒng)硬件框圖如圖3所示。
在系統(tǒng)中,USB接口器件EZ_USB FX2與主機的數據傳輸方式采用塊傳輸(BULK rrransfer)的方式。設計中EZ_USBFX2的工作模式選用端口模式。去掉了FIFO,充分利用EZ-USB FX2內部資源,將其內部端點2作為數據緩沖區(qū).大大簡化了硬件設計。數據存儲模塊選用AM29LV040.該Flash控制簡單,存儲容量大,非常適合此系統(tǒng)。
系統(tǒng)硬件實現主要由電源模塊,時鐘模塊,復位電路。I2C總線模塊,數據存儲模塊,USB接口模塊及并口數據采集等部分組成。其中,數據采集和上傳都是由EZ_USB FX2實現,外部存儲模塊由F3ash AM29LV040實現。
3.1 USB接口模塊
D+.D-是與主機通訊的數據線,當USB設備插上主機時.D+和D-上有一個壓差,主機就會發(fā)現外圍設備,讀取設備的。PID和VID,并載入相應驅動,如圖4所示。由于系統(tǒng)使用的是外接+3.3 V電源,所以VBUS沒有連接。如果需要用總線供電,因為CY7C68013使用的是+3.3 V供電,而總線電壓是5 V,所以要經過一個電壓變換,需將VBUS接至0 DC-DC變換器。圖4中SHIELD和GND之間的電阻和電容用于防止EMll和RFI。
3.2 并口輸入模塊
該模塊由兩個并行接口組成,其連接電路如圖5所示。這是數據采集系統(tǒng)中數據的來源,即拌和站主機輸送打印數據的并口。其中的INO~IN7連在EZ-USB FX2的I/O端口PORTC上.STROBE信號作為中斷信號接到EZ-DSB FX2的外部中斷O上,STROBE由高到低的一次跳變引發(fā)一次中斷,執(zhí)行一次中斷處理程序。中斷處理程序中將PORTC上的數據暫存到FX2內部斷點2中。為了在采集數據時不影響打印機的正常工作,將并口的其余信號接到PORTB上,在固件中對其設置。其中除PE、BUSY和SEL外均作為輸入,PE、BUSY和SEL作為輸出,PE和BUSY置低,SEL置高。
4 系統(tǒng)軟件設計
USB應用系統(tǒng)軟件設計分為3部分:固件程序設計、主機驅動程序以及主機應用程序。系統(tǒng)設計只做了固件程序的設計,驅動程序使用公司提供的通用驅動程序,應用程序使用公司的應用程序Control Panel調試。
固件是運行在CY7C68013上的程序,可采用匯編語言或C語言設計,其主要功能是負責初始化各硬件單元、控制CY7C268013接收并處理USB驅動程序的請求、控制CY7C68013接收應用程序的控制指令、通過CY7C68013存放數據并實時上傳至PC等。只有在該程序運行時,外設才能稱之為具有給定功能的外部設備。
固件程序代碼的存儲位置:固件代碼固化到一片EEP-ROM中.外設加電后由FX2通過FC總線下載到片內RAM后自動執(zhí)行。
設計采用利用現成的固件程序框架函數編寫固件程序,根據設備的需求添加響應的代碼來完成特定的目的。其中基本的固件程序框架函數:
void TD_Init(void) //該函數用來完成EZ-USB FX2的初始化
void TD_Poll(void) //該函數在設備運行時反復被調用,它包括完成用戶任務的函數
BOOL TD_Resume(void)//設備重啟后調用
BOOL TD_Suspend(void) //設備進入掛起狀態(tài)前調用在整個固件程序中,EZ-LISB FX2設備上電或復位后,首先初始化所有的內部狀態(tài)變量,隨后調用TD_Init()函數,并開中斷,此時固件程序不斷檢測控制端口O是否收到SETUP包。一旦收到,固件程序就開始調用用戶函數TD_Poll(),其中用戶需要完成的功能代碼就在TD_Poll()函數中。調用完成后.重復檢測端口O是否收到SETUP包,若有,繼續(xù)執(zhí)行設備請求,調用TD_Poll()函數;否則,檢測USB核是否有USB掛起事件,若有,調用TD_Suspend()函數,其返回值為真時,檢測USB核是否有重新開始事件,若沒有,設備進入掛起狀態(tài),否則,凋用TD_Resume(),進行下一次循環(huán),當TD_Sus-pend()函數返回值為假時,直接進入下一次循環(huán)。固件程序流程如圖6所示。
固件程序中定義了許多中斷處理函數,使用時可加入自己編寫的代碼,就可在不改變整個程序的前提下,僅通過改變相應的模塊實現用戶的功能。設計中使用了外部中斷O,其優(yōu)先級最高,可以最大程度地避免數據丟失。在其相應的中斷處理函數中,將來自打印機并口的數據采集到FX2的內部緩沖區(qū)中。無中斷到來時,在TD_Poll()函數中,將緩沖區(qū)中的數據寫到Flash中。
5 結語
提出一種基于USB2.0的高速數據采集系統(tǒng),設計了采集系統(tǒng)的硬件電路,并編寫了相應的固件程序。大大提高傳輸速率,降低系統(tǒng)成本。其不足之處是采集速度不理想,雖然實現了高速采集的目的,但是距離USB2.O的最高傳輸速率還有差距,需要在以后的研究中,加以研究和改進。
大家好,我是鲏。認識我的朋友都知道,我是一個實踐派,相比研究枯燥的理論知識,我更喜歡做自己想做的項目,用技術來實現自己的想法的感覺真的很棒。所以從大學期間一直到現在,除了工作中的項目外,我依然保持著自己做項目的習慣,有堅...
關鍵字: 系統(tǒng)設計 技術選型 需求分析GRL東莞實驗室將與上海和臺北實驗室一同,提供Windows Host認證服務 加利福尼亞州圣克拉拉市2022年9月22日 /美通社/ -- 高速信號和充電技術測...
關鍵字: Windows THUNDERBOLT USB OS(全球TMT2022年8月30日訊)近日,在2022英特爾中國數據中心合作伙伴技術峰會上,英特爾與浪潮信息等產業(yè)生態(tài)伙伴聯合發(fā)布了《綠色數據中心創(chuàng)新實踐 -- 冷板液冷系統(tǒng)設計參考》白皮書,分享冷板液冷技術關鍵部件的最...
關鍵字: 系統(tǒng)設計 英特爾 數據中心 生態(tài)系統(tǒng)北京2022年8月30日 /美通社/ -- 近日,在2022英特爾中國數據中心合作伙伴技術峰會上,英特爾與浪潮信息等產業(yè)生態(tài)伙伴聯合發(fā)布了《綠色數據中心創(chuàng)新實踐 -- 冷板液冷系統(tǒng)設計參考》白皮書,分享冷板液冷技術關鍵部...
關鍵字: 系統(tǒng)設計 英特爾 數據中心 電量