基于PIC單片機開發(fā)的高精度數(shù)據(jù)采集器
1ADS1210引腳及功能
ADS1210是一種高精度、寬動態(tài)范圍,采用單5V電源供電,具有24位分辨率的新型A/D轉換器。封裝形式有18腳雙列直插式和18線貼片式,引腳功能描述如表1。
●指令寄存器(INSR)
指令寄存器是一個8位寄存器,它指明了系統(tǒng)是進行讀操作還是寫操作,并確定讀/寫操作的字節(jié)長度以及讀/寫操作寄存器的起始地址。?
●命令寄存器(CMR)
命令寄存器是ADS1210的關鍵,它控制著ADS1210的所有特性功能。一旦串口時鐘的下降沿將數(shù)據(jù)字節(jié)的最后一位寫入命令寄存器,新的模式就開始生效。命令寄存器控制ADS1210所選用的選項和操作模式,包括可編程增益放大器的增益(G)設置、增強模式(TMR)、輸出數(shù)據(jù)率(Decimation)和校正方式等等。
●數(shù)據(jù)輸出寄存器(DOR)
數(shù)據(jù)輸出寄存器保存最近的轉換結果。“數(shù)據(jù)準備就緒信號”變?yōu)榈碗娖角?,寄存器的內容被一個新的結果更新。
●失調寄存器(OCR)
失調寄存器對放入數(shù)據(jù)輸出寄存器前的轉換結果進行失調校正。在這種應用中,失調寄存器的內容可能是自校正結果,也可能是系統(tǒng)校正結果,通過串行口可以對失調寄存器進行讀寫。?
●滿刻度校正寄存器(FCR)
滿刻度校正寄存器對放入數(shù)據(jù)輸出寄存器前的轉換結果進行滿刻度校正。實際的失調寄存器值和滿刻度校正寄存器值隨結構、溫度和電源的變化而改變。因此,任何狀態(tài)下的失調寄存器和滿刻度校正寄存器的實際值都不能精確地預測,也就是說,給定系統(tǒng)的校正不能簡單地通過外部誤差的測量來獲得某一結果,將其寫入寄存器作為校正因子。
與ADS1210的通信是在數(shù)據(jù)轉換完成之后,即電平為低的時候開始進行的。通常首先是對指令寄存器進行寫操作,指明下一步要進行操作的寄存器的起始地址和字節(jié)長度以及系統(tǒng)是進行讀操作還是寫操作,由此決定接下來進行什么類型的通信。之后隨著合適的時鐘脈沖產生(SCLK時鐘的周期數(shù)是由指令寄存器指定的字節(jié)長度所決定的),對指令寄存器指定的寄存器進行操作,完畢后等待引腳的下一個低電平產生,如此反復直到數(shù)據(jù)采集完成。?
在實際的測量中,電源是影響精度的重要因素。為了減小其影響,電源必須穩(wěn)定,噪聲小,因此,使用MAX666作+5V電壓的穩(wěn)壓芯片,以及利用外圍電容的作用減少電壓波動。此外,ADS1210可使用本身的校正寄存器,通過編程對A/D轉換的數(shù)據(jù)進行校正,進一步提高測量精度。通過CMR的設置,使用者可自行選擇合適的校正模式。在背景校正下,校正以固定的時間間隔重復不斷地進行,其他的幾種類型,一旦校正運行完成就恢復正常運行。本設計采用背景校正模式。??
PIC系列單片機硬件系統(tǒng)設計簡潔,指令系統(tǒng)設計精煉。PIC單片機集成了豐富的外圍模塊,可以通過對內部的寄存器操作實現(xiàn)對外圍模塊的控制。
串行擴展通信接口是單片機與其他計算機或模塊之間進行數(shù)據(jù)交換的重要渠道。PIC16F87X系列單片機主要配置有2種形式的串口通信模塊,即主控同步串行通信MSSP和通用同步/異步收發(fā)器USART。其中,MSSP模塊主要應用于系統(tǒng)內部近距離的串行通信,如SPI和I2C模式;USART模塊主要應用于系統(tǒng)之間的遠距離的串口通信。
SPI(Serial Peripheral Interface)是一種單片機外設芯片同步串行擴展接口,由于ADS1210自帶一個靈活的同步串行接口與SPI通信模式兼容,故本設計中PIC單片機與ADS1210進行的所有數(shù)據(jù)交換都采用SPI的通信模式。PIC單片機的SPI模塊電路包含3個主要部分:發(fā)送緩沖器、接收緩沖器和移位寄存器。
USART在異步模式下采用的數(shù)據(jù)格式為1位起始位、8位或9位數(shù)據(jù)位和1位停止位,無奇偶位校驗碼,常用的數(shù)據(jù)為8位。片內提供的8位波特率發(fā)生器BRG,可以利用系統(tǒng)時鐘信號產生標準的波特率頻率為串行傳送所用。USART具有分別獨立的發(fā)送器和接收器,但它們所采用的數(shù)據(jù)格式和波特率是相同的。本設計運用單片機的USART異步發(fā)送功能通過MAX232芯片進行必要的電平轉換后向上位機傳送所采集的數(shù)據(jù)。?
ADS1210與外部器件接口形式有雙線制、三線制、四線制和多線制,此處采用的是四線制實現(xiàn)與單片機的接口,接口信號是數(shù)據(jù)準備就緒信號(),數(shù)據(jù)輸入/輸出線(SDIO)、數(shù)據(jù)輸出線(SDOUT)、時鐘信號線(SCLK)。具體見圖1。
PIC單片機程序的流程圖如圖2。
圖3是用來從串口接收數(shù)據(jù)的軟件運行界面,作為本設計的測試軟件。接收區(qū)內顯示的 數(shù)據(jù)是使用本數(shù)據(jù)采集器所采集的幾組數(shù)據(jù),而界面下端的狀態(tài)欄RX顯示的是接收數(shù)據(jù)的組 數(shù),實驗表明,本設計完全可以達到20位以上的精度。
本設計可用于工業(yè)過程控制、儀器儀表、血液分析、智能發(fā)射機、電位計、質量標準、 壓力轉換等高分辨率測量場合,例如可用于精度要求較高的電容式測壓微傳感器的性能測試 ,具有一定的通用性。?