關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于C8051F340數(shù)據(jù)采集系統(tǒng)的設(shè)計

        基于C8051F340數(shù)據(jù)采集系統(tǒng)的設(shè)計

        作者: 時間:2010-12-22 來源:網(wǎng)絡(luò) 收藏

        圖2 數(shù)據(jù)采集硬件原理圖。

        4 軟件設(shè)計

        系統(tǒng)的軟件部分包括單片機(jī)固件和上位PC 機(jī)客戶端程序。單片機(jī)固件主要負(fù)責(zé)單片機(jī)初始化及與上位機(jī)的通信準(zhǔn)備, 而客戶端程序則負(fù)責(zé)對固件中相應(yīng)控制的調(diào)用, 實現(xiàn)數(shù)據(jù)的傳輸控制、數(shù)據(jù)保存以及故障的預(yù)警。

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

        單片機(jī)固件采用K eil uV ision3軟件進(jìn)行編寫,由主程序, AD數(shù)據(jù)轉(zhuǎn)換, USB通訊三個模塊組成。

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

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



        圖3 AD 轉(zhuǎn)換等效輸入電路。



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



        其中: K 為定時器2溢出后重載的計數(shù)數(shù)值; clk 為系統(tǒng)時鐘頻率。



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


        關(guān)鍵詞: 收發(fā)器

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 曲靖市| 彝良县| 鄂尔多斯市| 沭阳县| 于都县| 奎屯市| 漾濞| 青海省| 乐平市| 商河县| 蓬莱市| 青川县| 新闻| 永年县| 萨迦县| 缙云县| 江永县| 沙湾县| 固镇县| 合江县| 田阳县| 富顺县| 延津县| 武定县| 康马县| 松江区| 云和县| 泾川县| 福州市| 东辽县| 景谷| 雅江县| 瑞金市| 穆棱市| 金昌市| 分宜县| 美姑县| 乌鲁木齐市| 通城县| 白银市| 淮北市|