基于TMS320 F28335信號(hào)處理板的設(shè)計(jì)與實(shí)現(xiàn)
3 系統(tǒng)軟件設(shè)計(jì)
如前所述,整個(gè)信號(hào)處理板一共有12路模擬信號(hào)通路,通過(guò)傳感器接收到12路模擬信號(hào)。2片AD7656把12路模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)傳送給TMS320F28335,在TMS320F28335中對(duì)這些采集到的數(shù)據(jù)做相應(yīng)處理后通過(guò)SCI傳送給上位機(jī)。同時(shí)對(duì)有必要保存的數(shù)據(jù)通過(guò)SPI接口保存到EEPROM中。整個(gè)采集、通信過(guò)程由上位機(jī)發(fā)送相關(guān)的命令來(lái)加以控制。程序的流程如圖5所示。本文引用地址:http://www.ex-cimer.com/article/161948.htm
在主函數(shù)中,程序首先完成相應(yīng)模塊的初始化,設(shè)定好CPU運(yùn)行的時(shí)鐘,選定好各個(gè)模塊的工作模式,然后讀取EEPROM中的設(shè)備初始化數(shù)據(jù),后進(jìn)行入等待狀態(tài)。此時(shí)CPU等待ADC采樣的數(shù)據(jù),當(dāng)ADC采樣過(guò)程結(jié)束,則進(jìn)入ADC中斷響應(yīng)函數(shù),在此函數(shù)中,主要完成數(shù)據(jù)的讀取,對(duì)于小信號(hào),通過(guò)程控放大器放大其幅值,然后存儲(chǔ)到自定義的緩存區(qū)中。兩個(gè)串口工作方式均由上位機(jī)發(fā)送命令,從而觸發(fā)SCI的串口收中斷服務(wù)函數(shù)。然后在中斷服務(wù)函數(shù)中完成對(duì)應(yīng)命令要求。系統(tǒng)選用串口1完成采集數(shù)據(jù)向上位機(jī)的傳輸,串口0完成向EEPROM發(fā)送需保存的數(shù)據(jù)和一些相關(guān)操作。而SCI0和SCI1分別對(duì)應(yīng)DSC外設(shè)中斷的INT9.1和INT9.3,外部中斷XINT1對(duì)應(yīng)INT1.4。程序設(shè)置兩個(gè)串口的傳輸速率均為38.4 kb·s-1。
在設(shè)備工作時(shí),由于SCI1的中斷源是上位機(jī)的命令發(fā)送,系統(tǒng)規(guī)定上位機(jī)每20ms發(fā)送一個(gè)數(shù)據(jù)接受命令,因此SCI1的中斷響應(yīng)周期為td= 20 ms。而由于采樣率為40 kHz,因此ADC的中斷服務(wù)函數(shù)響應(yīng)周期為0.025 ms。系統(tǒng)規(guī)定采集一組數(shù)據(jù)的個(gè)數(shù)為50,那么采集一組數(shù)據(jù)的時(shí)間即為tc=1.25 ms,所以在一次SCI1中斷過(guò)程中,ADC會(huì)采集16組數(shù)據(jù)??紤]到串口傳輸?shù)牟ㄌ芈蕿?8.4kb·s-1,因此傳送一個(gè)16位的數(shù)據(jù)時(shí)間為tt=0.417 ms。而一組數(shù)據(jù)采集時(shí)間加上串口數(shù)據(jù)傳輸?shù)臅r(shí)間為tc+tt=1.667 mstd,因此在上位機(jī)的發(fā)送命令到達(dá)時(shí),串口發(fā)送寄存器的數(shù)據(jù)總是準(zhǔn)備完畢的,而不會(huì)發(fā)送隨機(jī)數(shù)據(jù)。
4 結(jié)束語(yǔ)
所設(shè)計(jì)的信號(hào)處理板以TMS320F28335為核心處理器,利用AD7656完成模擬信號(hào)采樣的功能硬件平臺(tái)。TMS320F28335片內(nèi)集成了豐富的外圍資源,通過(guò)驅(qū)動(dòng)軟件的配置和硬件系統(tǒng)的設(shè)計(jì),可以方便、高效地完成大量數(shù)字信號(hào)的處理和運(yùn)算。AD7656的6路模擬信號(hào)采集和16位高精度的模擬信號(hào)采樣,較好地完成了模擬信號(hào)的數(shù)字化轉(zhuǎn)換,減少了模擬信號(hào)采樣的失真。實(shí)驗(yàn)證明,信號(hào)處理板所采集到的數(shù)字信號(hào)的誤差值約為1.37 mV,可達(dá)14位的采樣精度。
評(píng)論