新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 星載電子設備多余物數據采集系統的設計

        星載電子設備多余物數據采集系統的設計

        作者: 時間:2011-06-10 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/191176.htm

        c.JPG



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

        d.JPG

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

        e.JPG


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

        f.JPG


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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 潞城市| 马龙县| 陇南市| 曲水县| 呼玛县| 兰溪市| 九江县| 仙居县| 尤溪县| 吉林省| 凤翔县| 石棉县| 永新县| 文山县| 固镇县| 永吉县| 宽城| 青阳县| 呼伦贝尔市| 荔浦县| 南和县| 全南县| 洞口县| 中江县| 水富县| 蓝田县| 游戏| 太谷县| 南陵县| 根河市| 营口市| 山西省| 凌海市| 凉山| 大城县| 同心县| 正安县| 平湖市| 滦南县| 化州市| 桐柏县|