基于TMS320DM64 46的數(shù)字電影放映系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:針對某設(shè)備運(yùn)行狀態(tài)實(shí)時(shí)監(jiān)控的需要, 研制了一個(gè)高速數(shù)據(jù)采集裝置, 該裝置采用帶USB 接口的C8051F340單片機(jī)為核心, 同時(shí)具有多路信號切換, A /D變換等功能。采用K eil uV is ion3進(jìn)行固件開發(fā), 實(shí)現(xiàn)了溫度壓力超限報(bào)警功能。該系統(tǒng)的電路結(jié)構(gòu)簡單、可靠。
1引言
電子設(shè)備運(yùn)行狀態(tài)的穩(wěn)定性直接影響到現(xiàn)代企業(yè)的生產(chǎn), 設(shè)備發(fā)生故障后高昂的維修費(fèi)以及設(shè)備停機(jī)后給企業(yè)生產(chǎn)帶來的損失, 使得各個(gè)企業(yè)紛紛采取措施, 降低設(shè)備的故障率。通過數(shù)據(jù)采集系統(tǒng)準(zhǔn)確的獲取設(shè)備運(yùn)行特征數(shù)據(jù), 并對數(shù)據(jù)進(jìn)行分析,判斷設(shè)備的運(yùn)行狀態(tài)是否良好, 達(dá)到提前預(yù)防故障出現(xiàn)、減少停機(jī)檢修的目的。實(shí)際應(yīng)用中對數(shù)據(jù)采集系統(tǒng)的可靠性, 準(zhǔn)確性和便攜性要求很高。目前常用的數(shù)據(jù)傳輸網(wǎng)絡(luò)(如RS232 /RS485, CAN 等)已經(jīng)不能滿足大量采集數(shù)據(jù)和高速實(shí)時(shí)數(shù)據(jù)傳輸?shù)囊?。而USB傳輸具有高速可靠傳輸?shù)膬?yōu)勢, 具有成本低、可靠性高、維護(hù)方便等優(yōu)點(diǎn)。本文以帶有片上USB 和高速AD轉(zhuǎn)換器的C8051F340為核心控制器件, 利用USB總線高速傳輸?shù)奶匦? 設(shè)計(jì)了一款高速度低成本的數(shù)據(jù)采集系統(tǒng), 采集信號包括該設(shè)備輸出氣體的溫度、壓力和流量等14個(gè)參數(shù), 適用于特定設(shè)備運(yùn)行狀態(tài)的數(shù)據(jù)采集工作。
2系統(tǒng)設(shè)計(jì)
系統(tǒng)設(shè)計(jì)圖如圖1所示, 系統(tǒng)主要由C8051F340數(shù)據(jù)采集模塊與上位PC機(jī)構(gòu)成。需要監(jiān)控的數(shù)據(jù)通過系統(tǒng)前端的傳感器轉(zhuǎn)換后送入預(yù)處理電路, 從預(yù)處理電路輸出的數(shù)據(jù)通過I/O端口送入AD轉(zhuǎn)換端口,經(jīng)過AD轉(zhuǎn)換將數(shù)據(jù)保存到C8051F340單片機(jī), 最后通過USB把數(shù)據(jù)送入上位PC機(jī)保存處理。
圖1 系統(tǒng)設(shè)計(jì)框圖
3 硬件設(shè)計(jì)
在整個(gè)硬件設(shè)計(jì)中C8051F340 單片機(jī)是系統(tǒng)重要的組成部分。C8051F340單片機(jī)是S ilicon Laboratories公司推出的完全集成的混合信號片上系統(tǒng)型MCU。具有高速、流水線結(jié)構(gòu)的8051兼容的微控制器內(nèi)核( 可達(dá)48M IPS ); 通用串行總線(USB )功能控制器, 有8 個(gè)靈活的端點(diǎn)管道, 集成收發(fā)器和1K FIFO RAM; 真正10位200ksps的單端/差分ADC, 帶模擬多路器; 片內(nèi)電壓基準(zhǔn)和溫度傳感器; 精確校準(zhǔn)的12MH z內(nèi)部振蕩器和4 倍時(shí)鐘乘法器; 多達(dá)64KB 的片內(nèi)FLASH 存儲(chǔ)器; 多達(dá)4352字節(jié)片內(nèi)RAM ( 256+ 4KB ); 多達(dá)40個(gè)端口I/O (容許5V 輸入)采集系統(tǒng)的電路設(shè)計(jì)。[!--empirenews.page--]
由于C8051F340本身集成眾多硬件電路的特性, 硬件接口設(shè)計(jì)變得非常簡單, 不需要再添加額外的電子元器件就能實(shí)現(xiàn)USB 的數(shù)據(jù)傳輸和AD轉(zhuǎn)換等, 使得系統(tǒng)的硬件結(jié)構(gòu)簡單, 集成度高, 可靠性好。如圖2所示, 單片機(jī)通過片上USB 接口與上位PC 機(jī)連接進(jìn)行數(shù)據(jù)的傳輸。C8051F340上的P2. 0~ P2. 6引腳作為數(shù)據(jù)采集的輸入端口, 接受來自預(yù)處理電路輸送過來的數(shù)據(jù), 最后通過單片機(jī)的模擬多路選擇器( AMUX) 最終決定進(jìn)入AD 轉(zhuǎn)換的通道。
圖2 數(shù)據(jù)采集硬件原理圖。
4 軟件設(shè)計(jì)
系統(tǒng)的軟件部分包括單片機(jī)固件和上位PC 機(jī)客戶端程序。單片機(jī)固件主要負(fù)責(zé)單片機(jī)初始化及與上位機(jī)的通信準(zhǔn)備, 而客戶端程序則負(fù)責(zé)對固件中相應(yīng)控制的調(diào)用, 實(shí)現(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通訊三個(gè)模塊組成。
主程序負(fù)責(zé)初始化單片機(jī)的各個(gè)端口和功能模塊, 設(shè)置相應(yīng)的IO 端口為數(shù)據(jù)輸入端口, 完成各項(xiàng)初始化后通過vo id USB_API_TEST _ISR ( void)函數(shù)進(jìn)入U(xiǎn)SB中斷服務(wù), 在中斷服務(wù)中通過調(diào)用Get_Interrupt_Source( )函數(shù)獲得USB 中斷源。然后根據(jù)不同的入口情況, 來進(jìn)行相應(yīng)的處理。比如收到初始化命令時(shí), 復(fù)位單片機(jī)內(nèi)的各個(gè)狀態(tài)參數(shù)。[!--empirenews.page--]
AD數(shù)據(jù)轉(zhuǎn)換模塊主要負(fù)責(zé)AD轉(zhuǎn)換時(shí)的轉(zhuǎn)換時(shí)間間隔、采樣精度的設(shè)置。C8051F340單片機(jī)的AD轉(zhuǎn)換啟動(dòng)有6 種觸發(fā)方式, 由ADC0CN 中的ADC0轉(zhuǎn)換啟動(dòng)方式位( AD0CM2..0)的狀態(tài)決定采用哪一種方式。本系統(tǒng)則是是通過單片機(jī)中的定時(shí)器2的每次計(jì)時(shí)溢出來觸發(fā)AD 轉(zhuǎn)換。為確保每次定時(shí)器觸發(fā)AD 轉(zhuǎn)換時(shí)上一次數(shù)據(jù)轉(zhuǎn)換完全結(jié)束, 因此定時(shí)器2溢出后到下一次計(jì)時(shí)溢出的時(shí)間間隔( Tcon t)必須要大于AD 轉(zhuǎn)換時(shí)間, 才能保證每次AD轉(zhuǎn)換的完整進(jìn)行。AD 轉(zhuǎn)換時(shí)間由建立轉(zhuǎn)換時(shí)間( Tsettle)和采樣時(shí)間( Tsample)構(gòu)成。圖3所示為在差分方式下等效的AD 轉(zhuǎn)換的輸入電路。對于一個(gè)給定的建立精度( SA ) 的系統(tǒng)中, 所需要的ADC 建立時(shí)間( Tsettle)可以用方程1來確定。而采樣時(shí)間( Tsamp le)通過查詢技術(shù)手冊得知需要10個(gè)SAR 時(shí)鐘。Tcon t則必須要滿足式( 2)和式( 3), 才能滿足設(shè)計(jì)要求。
圖3 AD 轉(zhuǎn)換等效輸入電路。
軟件開發(fā)具體步驟如下:
?、貲SP端,在TI公司推出的CCS3.3開發(fā)環(huán)境下,把音視頻解碼算法修改成符合數(shù)字媒體標(biāo)準(zhǔn)(xDM)的形式,并編譯生成一個(gè)算法的庫文件*.lib(等同于Linux環(huán)境下的*.a(chǎn)64P,直接在Linux環(huán)境下修改文件后綴名即可)。
?、谏梢粋€(gè)在DSP上運(yùn)行的可執(zhí)行程序*.x64P(即.out文件),也就是Codec Server。本系統(tǒng)的Codec Server里集成了MPEG-2、MPEG-4、H.264、AAC、MP3、G.71l多種形式的音視頻解碼器。
?、鄹鶕?jù)Codec Server的名稱及其中包含的具體的音視頻解碼算法,創(chuàng)建Codec Engine的配置文件*.cfg,包括Engine的不同配置、名稱,每個(gè)Engine里包括的Codec以及每個(gè)Codec運(yùn)行在ARM還是DSP端等。例如,在.cfg文件中,可以修改取得Codec模塊的相關(guān)語句,按需要引用Codec模塊。取得不同模塊的語句如下;
[!--empirenews.page--]
4. 2 上位PC 機(jī)客戶端程序
上位PC 機(jī)客戶端程序包括USB 驅(qū)動(dòng)程序和用戶應(yīng)用程序兩個(gè)部分。
USB驅(qū)動(dòng)程序是一個(gè)軟件組件, 封裝了應(yīng)用程序存取硬件設(shè)備的功能函數(shù)。有些設(shè)備具有相同的屬性, 把它們歸為一組標(biāo)準(zhǔn)類別, 可以定義設(shè)備類規(guī)范作為該類設(shè)備的主機(jī)驅(qū)動(dòng)框架。設(shè)備類驅(qū)動(dòng)程序使用相似的函數(shù), 處理不同設(shè)備間的通信,這樣使設(shè)備類驅(qū)動(dòng)程序的開發(fā)可以脫離設(shè)備制造商。本系統(tǒng)的驅(qū)動(dòng)程序使用了Silicon Laboratories公司提供的USB Xpress開發(fā)包, 在V isua l C ++ 6. 0環(huán)境下開發(fā), 封裝成動(dòng)態(tài)鏈接庫DLL 的形式供用戶應(yīng)用程序調(diào)用。
用戶應(yīng)用程序采用C + + 編寫, 由客戶交互界面, USB數(shù)據(jù)通信, 數(shù)據(jù)保存顯示, 設(shè)備故障預(yù)警四個(gè)模塊組成。在USB 數(shù)據(jù)通信模塊設(shè)計(jì)中, 使用S ilicon Laboratories公司提供的S I_GetN umDevices,S I_GetProductString ( ), SI_Open( ), SI_C lose( ) , SI_Read( ) , SI_W rite( ) 等API函數(shù), 屏蔽了對底層硬件操作中USB 復(fù)雜的通信協(xié)議, 簡化了USB 通信開發(fā), 使得開發(fā)USB 通信的程序變得更容易 。
程序流程圖如圖4所示。
圖4 客戶端應(yīng)用程序流程圖。
誘發(fā)設(shè)備出現(xiàn)故障的原因很多, 為保證設(shè)備正常運(yùn)行需要檢測多方面的數(shù)據(jù), 本系統(tǒng)主要是檢測設(shè)備的溫度和壓力等的數(shù)據(jù), 檢測獲得的數(shù)據(jù)一旦超過某個(gè)界限, 表示設(shè)備可能出現(xiàn)故障。因此為了保證設(shè)備長時(shí)間的穩(wěn)定工作, 需要對獲取的實(shí)時(shí)數(shù)據(jù)與事先設(shè)好的臨界值進(jìn)行對比, 一旦超過臨界值, 系統(tǒng)則發(fā)出警報(bào)提醒工作人員對設(shè)備進(jìn)行故障排查, 起到了故障預(yù)警的效果。
5 結(jié)語
基于USB 數(shù)據(jù)采集系統(tǒng)可供選擇的方案很多, 而本設(shè)計(jì)從便攜式和高速傳輸考慮, 編寫了固件和客戶端數(shù)據(jù)傳輸協(xié)議, 使得該數(shù)據(jù)采集系統(tǒng)方便攜帶, 數(shù)據(jù)傳輸高速準(zhǔn)確, 具有良好的人機(jī)交互界面, 并能對一定的設(shè)備故障進(jìn)行預(yù)警提醒, 有較大的使用價(jià)值。而且單片機(jī)端口資源還沒有用完,還有開發(fā)和擴(kuò)展的空間。