介紹利用PIC單片機對24位的Δ∑模數轉換芯片進行應用而開發的一種通用高精度數據采集器。具體介紹了數據采集器中的A/D轉換芯片的工作原理,PIC單片機的通訊模塊,實現數據采集工作的相應電路及程序流程圖。
關鍵詞:高精度;A/D轉換;PIC單片機
High Precision Data Collector Based on PIC Single Chip
XIE Xi, FENG Yongjian
(Mechanical&Electrical Engineering Department of Xiamen University,
Xiamen 361005, China)
Xiamen 361005, China)
Abstract: In this paper, a common high precision data collectorwhich uses PIC microchip to control the 24 bit Δ-∑ A/D converter is introduced. The principle of A/D converter, the communicating block of PIC microchip, the corresponding circuit and the flowchart are introduced in detail.
Keywords: high precision; A/D convert; PIC single chip
Keywords: high precision; A/D convert; PIC single chip
?
●指令寄存器(INSR)
指令寄存器是一個8位寄存器,它指明了系統是進行讀操作還是寫操作,并確定讀/寫操作的字節長度以及讀/寫操作寄存器的起始地址。?
●命令寄存器(CMR)
命令寄存器是ADS1210的關鍵,它控制著ADS1210的所有特性功能。一旦串口時鐘的下降沿將數據字節的最后一位寫入命令寄存器,新的模式就開始生效。命令寄存器控制ADS1210所選用的選項和操作模式,包括可編程增益放大器的增益(G)設置、增強模式(TMR)、輸出數據率(Decimation)和校正方式等等。
●數據輸出寄存器(DOR)
數據輸出寄存器保存最近的轉換結果?!皵祿蕚渚途w信號”變為低電平前,寄存器的內容被一個新的結果更新。
●失調寄存器(OCR)
失調寄存器對放入數據輸出寄存器前的轉換結果進行失調校正。在這種應用中,失調寄存器的內容可能是自校正結果,也可能是系統校正結果,通過串行口可以對失調寄存器進行讀寫。?
●滿刻度校正寄存器(FCR)
滿刻度校正寄存器對放入數據輸出寄存器前的轉換結果進行滿刻度校正。實際的失調寄存器值和滿刻度校正寄存器值隨結構、溫度和電源的變化而改變。因此,任何狀態下的失調寄存器和滿刻度校正寄存器的實際值都不能精確地預測,也就是說,給定系統的校正不能簡單地通過外部誤差的測量來獲得某一結果,將其寫入寄存器作為校正因子。
與ADS1210的通信是在數據轉換完成之后,即電平為低的時候開始進行的。通常首先是對指令寄存器進行寫操作,指明下一步要進行操作的寄存器的起始地址和字節長度以及系統是進行讀操作還是寫操作,由此決定接下來進行什么類型的通信。之后隨著合適的時鐘脈沖產生(SCLK時鐘的周期數是由指令寄存器指定的字節長度所決定的),對指令寄存器指定的寄存器進行操作,完畢后等待引腳的下一個低電平產生,如此反復直到數據采集完成。?
指令寄存器是一個8位寄存器,它指明了系統是進行讀操作還是寫操作,并確定讀/寫操作的字節長度以及讀/寫操作寄存器的起始地址。?
●命令寄存器(CMR)
命令寄存器是ADS1210的關鍵,它控制著ADS1210的所有特性功能。一旦串口時鐘的下降沿將數據字節的最后一位寫入命令寄存器,新的模式就開始生效。命令寄存器控制ADS1210所選用的選項和操作模式,包括可編程增益放大器的增益(G)設置、增強模式(TMR)、輸出數據率(Decimation)和校正方式等等。
●數據輸出寄存器(DOR)
數據輸出寄存器保存最近的轉換結果?!皵祿蕚渚途w信號”變為低電平前,寄存器的內容被一個新的結果更新。
●失調寄存器(OCR)
失調寄存器對放入數據輸出寄存器前的轉換結果進行失調校正。在這種應用中,失調寄存器的內容可能是自校正結果,也可能是系統校正結果,通過串行口可以對失調寄存器進行讀寫。?
●滿刻度校正寄存器(FCR)
滿刻度校正寄存器對放入數據輸出寄存器前的轉換結果進行滿刻度校正。實際的失調寄存器值和滿刻度校正寄存器值隨結構、溫度和電源的變化而改變。因此,任何狀態下的失調寄存器和滿刻度校正寄存器的實際值都不能精確地預測,也就是說,給定系統的校正不能簡單地通過外部誤差的測量來獲得某一結果,將其寫入寄存器作為校正因子。
與ADS1210的通信是在數據轉換完成之后,即電平為低的時候開始進行的。通常首先是對指令寄存器進行寫操作,指明下一步要進行操作的寄存器的起始地址和字節長度以及系統是進行讀操作還是寫操作,由此決定接下來進行什么類型的通信。之后隨著合適的時鐘脈沖產生(SCLK時鐘的周期數是由指令寄存器指定的字節長度所決定的),對指令寄存器指定的寄存器進行操作,完畢后等待引腳的下一個低電平產生,如此反復直到數據采集完成。?
在實際的測量中,電源是影響精度的重要因素。為了減小其影響,電源必須穩定,噪聲小,因此,使用MAX666作+5V電壓的穩壓芯片,以及利用外圍電容的作用減少電壓波動。此外,ADS1210可使用本身的校正寄存器,通過編程對A/D轉換的數據進行校正,進一步提高測量精度。通過CMR的設置,使用者可自行選擇合適的校正模式。在背景校正下,校正以固定的時間間隔重復不斷地進行,其他的幾種類型,一旦校正運行完成就恢復正常運行。本設計采用背景校正模式。??
PIC系列單片機硬件系統設計簡潔,指令系統設計精煉。PIC單片機集成了豐富的外圍模塊,可以通過對內部的寄存器操作實現對外圍模塊的控制。
串行擴展通信接口是單片機與其他計算機或模塊之間進行數據交換的重要渠道。PIC16F87X系列單片機主要配置有2種形式的串口通信模塊,即主控同步串行通信MSSP和通用同步/異步收發器USART。其中,MSSP模塊主要應用于系統內部近距離的串行通信,如SPI和I2C模式;USART模塊主要應用于系統之間的遠距離的串口通信。
SPI(Serial Peripheral Interface)是一種單片機外設芯片同步串行擴展接口,由于ADS1210自帶一個靈活的同步串行接口與SPI通信模式兼容,故本設計中PIC單片機與ADS1210進行的所有數據交換都采用SPI的通信模式。PIC單片機的SPI模塊電路包含3個主要部分:發送緩沖器、接收緩沖器和移位寄存器。
USART在異步模式下采用的數據格式為1位起始位、8位或9位數據位和1位停止位,無奇偶位校驗碼,常用的數據為8位。片內提供的8位波特率發生器BRG,可以利用系統時鐘信號產生標準的波特率頻率為串行傳送所用。USART具有分別獨立的發送器和接收器,但它們所采用的數據格式和波特率是相同的。本設計運用單片機的USART異步發送功能通過MAX232芯片進行必要的電平轉換后向上位機傳送所采集的數據。?
串行擴展通信接口是單片機與其他計算機或模塊之間進行數據交換的重要渠道。PIC16F87X系列單片機主要配置有2種形式的串口通信模塊,即主控同步串行通信MSSP和通用同步/異步收發器USART。其中,MSSP模塊主要應用于系統內部近距離的串行通信,如SPI和I2C模式;USART模塊主要應用于系統之間的遠距離的串口通信。
SPI(Serial Peripheral Interface)是一種單片機外設芯片同步串行擴展接口,由于ADS1210自帶一個靈活的同步串行接口與SPI通信模式兼容,故本設計中PIC單片機與ADS1210進行的所有數據交換都采用SPI的通信模式。PIC單片機的SPI模塊電路包含3個主要部分:發送緩沖器、接收緩沖器和移位寄存器。
USART在異步模式下采用的數據格式為1位起始位、8位或9位數據位和1位停止位,無奇偶位校驗碼,常用的數據為8位。片內提供的8位波特率發生器BRG,可以利用系統時鐘信號產生標準的波特率頻率為串行傳送所用。USART具有分別獨立的發送器和接收器,但它們所采用的數據格式和波特率是相同的。本設計運用單片機的USART異步發送功能通過MAX232芯片進行必要的電平轉換后向上位機傳送所采集的數據。?
ADS1210與外部器件接口形式有雙線制、三線制、四線制和多線制,此處采用的是四線制實現與單片機的接口,接口信號是數據準備就緒信號(),數據輸入/輸出線(SDIO)、數據輸出線(SDOUT)、時鐘信號線(SCLK)。具體見圖1。
?
PIC單片機程序的流程圖如圖2。
圖3是用來從串口接收數據的軟件運行界面,作為本設計的測試軟件。接收區內顯示的 數據是使用本數據采集器所采集的幾組數據,而界面下端的狀態欄RX顯示的是接收數據的組 數,實驗表明,本設計完全可以達到20位以上的精度。
?
評論
查看更多