引言
ADmC812是ADI公司的以8051(8052)內(nèi)核為控制核心的新型微轉換器,。由于ADmC812內(nèi)部集成了大量的外圍設備,。它本身就是一個完全可編程、自校準,、高精度的數(shù)據(jù)采集系統(tǒng),,可以取代傳統(tǒng)的MCU+A/D+ROM+RAM高成本、大體積產(chǎn)品,,尤其是它的高精度和高速度A/D模塊,,特別適應于智能傳感、瞬時獲取,、數(shù)據(jù)采集和各種通信系統(tǒng),。但是,對于需要采集數(shù)據(jù)量大,、運算復雜,、實時性又要求較高的場合,由于在結構和速度上的限制,,往往是無法滿足要求的,。本文針對這種情況,提出了基于ADmC812和DSP的數(shù)據(jù)采集系統(tǒng),。在這個系統(tǒng)中,,ADmC812作為主機,完成ADC,、DAC,、顯示、鍵盤等功能,,而DSP作從機,,專注于復雜的數(shù)據(jù)運算,,兩者通過通用的SRAM實現(xiàn)數(shù)據(jù)的交換和通信。
sp;
ADmC812和TMS320F206簡介
ADmC812微轉換芯片
ADmC812是具有16位計數(shù)/定時和32條可編程I/O接口的8051/8052微控制器,,內(nèi)置一個8通道,、5ms轉換時間、精度自校正,、12位逐次逼近的ADC,;2個12位DAC,10.5KB的閃存EEPROM,,256字節(jié)的SRAM。還包括一些重要功能模塊,,如看門狗定時器和電源監(jiān)控器,,ADC與數(shù)據(jù)存儲器之間的DMA方式,存儲保護功能,,一個通用異步串行收發(fā)器(UART),、SPI和I2C總線接口。
ADmC812內(nèi)豐富的外設,,使它不需要外部總線擴展就可以組成一個完整數(shù)據(jù)采集系統(tǒng),,有很高的性價比。更值得注意的是在ADmC812內(nèi)集成了8路12位高精度,、自校準4ppm/℃的ADC電路,。而且,當工作條件(如時鐘頻率,、模擬輸入范圍,、基準電壓或電源電壓)發(fā)生變化時,為了得到高精度的ADC結果,,可以用軟件對ADmC812內(nèi)4個用于校正的特殊功能的寄存器設置,,達到進一步校正ADC的目的。ADmC812通過設置ADCON1~3 三個特殊功能寄存器,,可以使ADC工作于3種不同的模式,,實現(xiàn)單次轉換、連續(xù)轉換和DMA模式的A/D轉換,,可以根據(jù)具體的需要選擇,,在DMA模式下,允許ADC在每次設置寄存器ADCCON1~3后連續(xù)采樣,,并將結果寫入外部RAM中,。這種自動捕獲功能大大地方便了主從處理器之間的數(shù)據(jù)交換。
數(shù)字信號處理器TMS320F206
TMS320F206(以下簡稱F206)是TI公司生產(chǎn)的TMS320C2000系列DSP之一,。是繼C2X和C5X之后推出的低價格高性能的16位定點DSP,,由于它采用了改進的哈佛結構,,具有分離的程序總線和數(shù)據(jù)總線,采用四級流水線作業(yè),,其運行速度可達40MIPS,,具有高速運行的特點。同時提供豐富的指令集,,增強的模塊化結構設計,,使它通用化得以提高,應用領域不斷拓寬,,現(xiàn)已成為高檔單片機的理想替代品,。F206片內(nèi)有32K的閃速存儲器,用戶通過F206自帶的,、符合IEEE標準1149.1的JTAG接口,,可以對程序進行仿真與調試,并將程序代碼燒錄到片內(nèi),,極大地方便了用戶的系統(tǒng)設計與程序調試,。
TMS320F206提供直接存儲器訪問(DMA)功能,通過使用HOLD操作允許對外部程序,、數(shù)據(jù)以及I/O空間進行直接存儲器訪問,。該過程是由、兩個信號控制,。外部設備可以把引腳驅動到低電平,,從而請求對外部總線的控制。如果中斷線被允許,,那么將觸發(fā)中斷,。F206在相應中斷時,軟件邏輯可以使處理器發(fā)出應答信號,,表示它將放棄對外部總線的控制,。根據(jù),外部地址信號(A15~A0),、數(shù)據(jù)信號(D15~D0)以及存儲器控制信號(,、、,、,、、,、)被置為高阻狀態(tài),,實現(xiàn)DMA功能。
系統(tǒng)硬件設計
系統(tǒng)的硬件結構如圖1所示,,存貯器62256作為DSP的全局數(shù)據(jù)存儲器,,同時又是ADmC812的外部存儲器,,兩控制器分別通過總線和數(shù)據(jù)存儲器62256相連,實現(xiàn)存儲器共享,。為了保證兩控制器能分別獨立地工作,。在ADmC812和62256之間插入了4片74HC245進行總線隔離。這樣,,在ADmC812的控制下,,每一時刻只有一個控制器訪問62256。圖中62256作為ADmC812的外部存儲器,,A15為片選信號,,地址范圍為8000H~FFFFH;作為F206的全局數(shù)據(jù)存儲器,,用作片選線,,使用高端32K字地址范圍(8000H~FFFFH)。兩片選信號經(jīng)一與非門和62256的片選線CS2相連,,實現(xiàn)片選信號的隔離。
ADmC812通過P1.0,、P3.2(INT0)分別和DSP的,、XF腳相連,由P1.0向DSP申請總線控制,,在DSP響應ADmC812的請求后,,DSP的CPU被掛起,并出讓外部總線,。ADmC812通過A15打開總線驅動器,,并經(jīng)與非門后選中62256,獲得62256的控制權,,實現(xiàn)對62256的讀寫操作,。而F206也可以通過向ADmC812請求中斷,ADmC812在響應中斷INT0后,,進行相關事務的處理,。另一方面,ADmC812通過讀引腳的電平,,可以確認F206是否被掛起,;而通過對腳的控制,實現(xiàn)F206程序的分支轉移,,增加系統(tǒng)的靈活性,。
整個系統(tǒng)分為事務性模塊和數(shù)據(jù)處理模塊,ADmC812控制事務模塊,,進行數(shù)據(jù)的采集,、LED顯示,、開關量的輸入輸出,模擬量的輸出及串行通信等功能,。F206控制數(shù)據(jù)處理模塊,,主要進行數(shù)據(jù)的處理,完成復雜的算法,。另外,,也可以根據(jù)數(shù)據(jù)處理結果直接處理一些重要的出口控制功能,以彌補ADmC812 I/O端口的不足,,加快系統(tǒng)的反應速度,。兩個相對獨立的功能模塊通過62256進行數(shù)據(jù)交換。
系統(tǒng)軟件設計
由于系統(tǒng)的兩個模塊在功能上相對獨立,,相應的軟件也包括兩個主要模塊,,ADmC812在程序加載完成后,就進入程序正常運行,。系統(tǒng)初始化后,,首先通過P1.0向F206請求DMA操作,且得到響應后,,ADmC812獲得62256控制權,。這時,通過配置3個特殊功能寄存器ADCCON1~3,,可以使ADmC812工作在不同的模式下,。其中在DMA模式下,ADC可以連續(xù)轉換,,并把采樣值捕獲到外部RAM空間而不需要來自微處理器的任何干預,,由中斷位ADCCON2.7表示DMA轉換結束。在A/D轉換結束且采樣點達到預定的數(shù)量后,,ADmC812就通過ADC中斷,,放棄對62256的控制并通知DSP進行數(shù)據(jù)處理。而后ADmC812進入顯示,、鍵功能,、I/O操作、串口通信等事務性的工作,。
F206在接收到ADmC812的DMA請求后,,進入到等待狀態(tài),并放棄對外部總線的控制權,。62256通過ADmC812獲得采樣數(shù)據(jù),,當采樣結束后,DSP從等待狀態(tài)返回到正常運行狀態(tài)并獲得總線的控制權,進行數(shù)據(jù)處理,,將運算結果放回62256,。F206的DMA操作過程是:F206引腳/上獲得一個有效的下降沿,當CPU轉移到0002H地址單元,,CPU從0002H地址單元提取中斷矢量并進入中斷服務程序,,在對MODE=0進行成功的測試后,該中斷服務程序就執(zhí)行一個IDLE指令,,使F206進入到等待狀態(tài),。當檢測到/腳上的一個上升沿后,CPU退出IDLE狀態(tài),,并使外部總線返回其正常狀態(tài),,執(zhí)行數(shù)據(jù)處理程序。
軟件使用C語言設計,,分別在兩個開發(fā)系統(tǒng)上進行程序設計和調試,。利用ADI公司提供的軟件開發(fā)工具,能夠快速高效地完成ADmC812應用程序的設計,,并通過ADmC812的通用串行口在線調試和代碼下載,。F206用聞亭公司提供的TDS-510開發(fā)工具進行軟件設計。最后將ADmC812和F206進行聯(lián)機調試,,完成整個軟件的開發(fā),。
結語
以上設計方案,適合于采集數(shù)據(jù)量大,、算法復雜、有一定實時要求的應用領域,。由于雙CPU系統(tǒng)無需額外的附加雙口RAM,、FIFO及復雜的控制電路,降低了成本,,簡化了電路,,也擴展了ADmC812的應用范圍。