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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 星載電子設備多余物數(shù)據(jù)采集系統(tǒng)的設計

          星載電子設備多余物數(shù)據(jù)采集系統(tǒng)的設計

          作者: 時間:2011-06-10 來源:網(wǎng)絡 收藏

          系統(tǒng)控制結(jié)構框圖如圖3所示。在數(shù)據(jù)控制和傳輸模塊中,邏輯控制器件EPM7064為模數(shù)轉(zhuǎn)換器件AD7892、CY7C4265以及EZ—USBFX2 CY7-C68013提供時序信號,通過調(diào)整、配合各芯片之間的通訊,控制四路數(shù)據(jù)采集和緩存模塊有序而快速地將數(shù)據(jù)傳輸至USB,保證各環(huán)節(jié)的數(shù)據(jù)采集和傳輸?shù)臄?shù)據(jù)同步不丟失,是整個控制系統(tǒng)的核心。

          本文引用地址:http://www.ex-cimer.com/article/191176.htm

          c.JPG



          3 系統(tǒng)軟件模塊設計
          3.1 USB固件程序
          固件程序采用Cypress公司提供的固件程序框架,主要負責完成芯片初始化,對芯片進行配置、設備請求、數(shù)據(jù)傳輸?shù)认鄳墓ぷ?,完成特定的目的?br /> 本系統(tǒng)設計的固件程序?qū)X2配置為Slave FIFO模式,總線寬度為16位,在4個端點中,EP2和EP4未使用,EP6和EP8配置如表1所示。由于采用自動輸入輸出模式,主機和單片機是通過旁路FX2的CPU而直接連接的,所有數(shù)據(jù)直接通過EP6或EP8管道提交,不需固件程序的干預。標志引腳(FLAGA、FLAGB)掌握FX2各端點FIFO的狀態(tài),F(xiàn)LAGB定義為輸入端點的滿標志,當數(shù)據(jù)滿時該引腳為低電平;FLAGB定義為輸出端點EP8的空標志,當主機傳來的數(shù)據(jù)被讀空時該引腳為低電平。

          d.JPG

          固件框架函數(shù)流程圖如圖4所示。TD_Init()函數(shù)是在設備重枚舉和任務調(diào)度啟用之前被調(diào)用,初始化用戶的全局狀態(tài)變量,規(guī)定各種端點資源的使用;TD_Poll()函數(shù)在設備工作期間被重復調(diào)用,包含一個執(zhí)行外設功能的狀態(tài)機:TD_Suspend()函數(shù)在框架進入掛起狀態(tài)之前被調(diào)用,包含使設備進入低功耗狀態(tài)的程序。

          e.JPG


          3.2 CPLD控制程序
          邏輯控制器件EPM7064為模數(shù)轉(zhuǎn)換器件AD7892、CY7C4265以及EZ—USB FX2 CY7C68013提供普通的時序信號、握手信號(滿、半滿、空標志信號)、讀寫信號和輸入輸出允許信號。A/D的采樣頻率、外部FIFO和USB內(nèi)部FIFO的讀寫時鐘均由EPM7064對外部時鐘的分頻和控制產(chǎn)生。
          CHLD在完成這些端口FIFO的操作時,采用Verilog HDL硬件描述語言實現(xiàn)了這些操作,并在ALTERA公司提供的Quartus II 8.0開發(fā)工具綜合編譯并映射到CPLD中。
          由于系統(tǒng)對USB采取了Slave FIFO模式異步方式讀寫數(shù)據(jù),所以與訪問外部FIFO的讀寫時序類似。向FIFO寫數(shù)據(jù)的狀態(tài)設計進程如下。如圖5所示。

          f.JPG


          a:查詢控制信號線是否有寫事件(電平變化)發(fā)生,有就轉(zhuǎn)移到狀態(tài)b,否則保持在狀態(tài)a;
          b:分配FIFOADR[1:0]=10,F(xiàn)IFO指針指向輸入端點,轉(zhuǎn)向狀態(tài)c;
          c:檢查FIFO的滿標志是否為“假”(FIFO不滿)則轉(zhuǎn)向狀態(tài)d.否則保留在狀態(tài)c;
          d:把外部數(shù)據(jù)放在FD[15:0]上,同時激活SLWR,然后轉(zhuǎn)向狀態(tài)e;
          e:假如有更多的數(shù)據(jù)要傳輸,則轉(zhuǎn)向狀態(tài)b,否則轉(zhuǎn)到狀態(tài)a。
          Slave FIFO模式的讀數(shù)據(jù)狀態(tài)設計進程類似。
          3.3 驅(qū)動程序的設計和安裝
          USB設備的驅(qū)動程序是開發(fā)USB外設的關鍵。設計的目標是在設備插上后,主機能通過USB總線自動下載該固件程序到EZ—USB外設芯片中,并自動完成該固件程序,建立起主機端與設備的通訊。USB的驅(qū)動程序包括通用驅(qū)動程序和固件下載驅(qū)動程序。前一個驅(qū)動程序采用EZ—USB軟件和硬件開發(fā)包提供的ezusb.sys驅(qū)動程序,可以直接使用,后一個驅(qū)動程序需自在固件程序框架下自行編寫并在DDK的環(huán)境下編譯生成。
          所有的USB設備都至少具有一個VID和PID,VID和PID通過設備描述符表提交給Windows系統(tǒng)。同時,Windows系統(tǒng)使用INF文件將某一VID和PID綁定到某一設備驅(qū)動程序。這樣,Windows系統(tǒng)在知道了設備的VID和PID后,就通過存儲在INF文件中的信息查找該設備的驅(qū)動程。其中,INF文件是需編寫的安裝信息文件,開發(fā)人員只需修改INF文件中的VID、PID以及相應的設備描述符。
          3.4 應用程序設計
          應用程序完成的主要功能有:啟動/關閉USB設備,檢測USB設備,設置A/D,數(shù)據(jù)采集、顯示和存儲等。
          同步實時系統(tǒng)對多任務的要求比較普遍,在后臺采集數(shù)據(jù)、進行數(shù)據(jù)顯示的同時,還要在前臺界面對用戶的操作做出響應,使用傳統(tǒng)的單線程編程技術效率較低,無法及時處理,必須充分利用Windows的多任務處理功能,采用多線程編程技術來處理數(shù)據(jù)。本系統(tǒng)采用Visual C++6.0作為程序的開發(fā)環(huán)境,并且充分運用了多線程的編程思想。在程序中設置3個線程:主線程負責用戶界面,它的生存周期就是整個應用程序的生存周期,用戶的動作(如鼠標事件、鍵盤事件等)都會觸發(fā)主線程的消息機制,從而完成對用戶的響應;而兩個分離的輔助線程分別負責數(shù)據(jù)的采集存儲、數(shù)據(jù)處理和顯示。



          評論


          相關推薦

          技術專區(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); })();