關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于C8051F340數據采集系統的設計

        基于C8051F340數據采集系統的設計

        作者: 時間:2010-12-22 來源:網絡 收藏

        圖2 數據采集硬件原理圖。

        4 軟件設計

        系統的軟件部分包括單片機固件和上位PC 機客戶端程序。單片機固件主要負責單片機初始化及與上位機的通信準備, 而客戶端程序則負責對固件中相應控制的調用, 實現數據的傳輸控制、數據保存以及故障的預警。

        4. 1 單片機固件( firmw are)

        單片機固件采用K eil uV ision3軟件進行編寫,由主程序, AD數據轉換, USB通訊三個模塊組成。

        主程序負責初始化單片機的各個端口和功能模塊, 設置相應的IO 端口為數據輸入端口, 完成各項初始化后通過vo id USB_API_TEST _ISR ( void)函數進入USB中斷服務, 在中斷服務中通過調用Get_Interrupt_Source( )函數獲得USB 中斷源。然后根據不同的入口情況, 來進行相應的處理。比如收到初始化命令時, 復位單片機內的各個狀態參數。

        AD數據轉換模塊主要負責AD轉換時的轉換時間間隔、采樣精度的設置。C8051F340單片機的AD轉換啟動有6 種觸發方式, 由ADC0CN 中的ADC0轉換啟動方式位( AD0CM2..0)的狀態決定采用哪一種方式。本系統則是是通過單片機中的定時器2的每次計時溢出來觸發AD 轉換。為確保每次定時器觸發AD 轉換時上一次數據轉換完全結束, 因此定時器2溢出后到下一次計時溢出的時間間隔( Tcon t)必須要大于AD 轉換時間, 才能保證每次AD轉換的完整進行。AD 轉換時間由建立轉換時間( Tsettle)和采樣時間( Tsample)構成。圖3所示為在差分方式下等效的AD 轉換的輸入電路。對于一個給定的建立精度( SA ) 的系統中, 所需要的ADC 建立時間( Tsettle)可以用方程1來確定。而采樣時間( Tsamp le)通過查詢技術手冊得知需要10個SAR 時鐘。Tcon t則必須要滿足式( 2)和式( 3), 才能滿足設計要求。



        圖3 AD 轉換等效輸入電路。



        其中: SA 是建立精度, 用一個LSB 的分數表示(例如, 建立精度0. 25對應1 /4LSB ); t為所需要的建立時間( Tsettle), 以秒為單位; n為ADC 的分辨率,用比特表示。Rtota l為AMUX 電阻與外部信號源電阻之和; C samp le為ADC采樣電容:



        其中: K 為定時器2溢出后重載的計數數值; clk 為系統時鐘頻率。



        USB通訊模塊則設置單片機與主機的數據傳輸模式。根據USB 通信協議要求, 設置相應寄存器來配置USB中端點0與端點2跟上位主機進行數據通信, 其中端點0負責與主機的控制命令接收與響應, 端點2 負責將采集的數據傳輸到上位主機, 同時配置端點2在U SB0的FIFO 分配中256字節使用空間全部為數據輸出。由于C8051F340 整合的是10位ADC控制器, 采集到的數據填充為16位數據, 以先低8 位, 后高8位將數據保存到系統的RAM 中, 而一次AD 轉換能得到2個字節的數據, 因此為了每次數據上傳時充分利用端點2的使用空間, 在ADC中斷響應函數中添加一個變量i來檢測進行轉換的次數, 在進行完128次AD轉換后通過調用B lock_W rite( )函數向主機發送數據。部分代碼如下:


        關鍵詞: 收發器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平邑县| 鄂托克旗| 布拖县| 岢岚县| 沁源县| 江口县| 延安市| 武宁县| 柳江县| 桑日县| 洛浦县| 博爱县| 吴旗县| 大足县| 马公市| 潼关县| 临潭县| 临泽县| 久治县| 安岳县| 许昌市| 南城县| 沁源县| 泾源县| 南宁市| 望奎县| 民和| 新野县| 屯留县| 万源市| 巨鹿县| 布尔津县| 德庆县| 延庆县| 富源县| 滦南县| 修水县| 东兰县| 昭通市| 昭苏县| 务川|