基于LPC2378的數據采集系統的設計
摘要:本文介紹了以LPC2378微處理器為核心的數據采集及處理系統,給出了各模塊、接口和軟件設計。
本文引用地址:http://www.j9360.com/article/88160.htm引言
在工業控制系統中,為了更好地實現對系統的控制,除了控制單元和執行單元外,還必須有反饋環節。在反饋環節中,最重要的就是對數據的采集和處理。一般的工業控制中,數據有很多種形式,最常見的有電流、電壓的模擬量、以二進制形式輸入的開關量以及以脈沖形式輸入的脈沖信號。
本文主要討論了以LPC2378微處理器為核心的數據采集和處理系統的實現過程。
系統結構
以NXP公司LPC2378為核心構成的控制系統的結構如圖1所示。該控制系統主要包括:嵌入式主控模塊、電源控制模塊、數據采集和處理模塊(A/D、D/A、R/D)、串口擴展模塊(SC16C554)。由主控模塊進行控制,其他模塊協同工作,共同實現數據采集和處理的功能。處理器和CPLD模塊是整個系統的核心,它控制各模塊間的協同工作;電源控制模塊負責為芯片提供所需要的工作電壓,并對電壓進行監測,同時提供系統的復位功能;數據采集和處理模塊由A/D、D/A、R/D構成,實現數據的數模或模數轉換;串口擴展模塊實現了與LPC2378之間數據的串、并行轉換,并完成與上位機的通訊功能。
圖1 數據采集處理系統框圖
SC16C554擴展出4路UART接口,波特率等底層協議由程序獨立設置,每個通道具有16字節的FIFO,兼容16C550。通過線路板接插件引入2組外部雙口RAM的存取接口,符合IDT7130的時序要求,數據、地址及控制信號等驅動。為方便客戶未來的擴展應用,系統向外部預留2組CAN總線接口。系統中實現2路A/D,2路D/A,2路R/D;并預留12位IO控制口,每位可單獨設置為輸入或輸出。
硬件設計
主控模塊
該模塊由LPC2378和CPLD (EPM7128AE)構成。LPC2378是一款基于ARM7TDMI-S核的高性能32位 RISC微處理器。處理器帶有Thumb指令擴展;主頻高達72MHz;片內集成512KB Flash,支持ISP及IAP,58KB SRAM,PLL加強型矢量中斷控制器,10/100M以太網帶DMA,USB2.0全速設備接口,2路CAN 2.0接口,通用DMA控制器,4個UART接口,1個具有全功能Modem的接口,3個I2C串行接口,3個SPI/SSP串行接口,一個I2S接口,SD/MMC記憶卡接口,8路10位 ADC,1路10位DAC,4個32位捕獲/比較時鐘,看門狗時鐘,PWM模塊支持3相馬達控制,RTC實時時鐘帶可選后備電池,通用I/O等。CPLD主要負責整個系統的譯碼工作,從而為系統中的某些芯片產生片選和控制信號。
電源控制模塊
通過接插件向線路板提供±15V、±12V、+5V的直流電源。由于系統中大多數芯片的工作電壓均為3.3V或5V,故選擇的電源電壓調節器為TPS76633,它能對外提供3.3V的電壓及250mA的電流,且誤差在3%以內。為了使系統能穩定的工作,抑制信號線、電源線上的高頻噪聲和尖峰干擾,需要使用磁珠進行系統的模數隔離。
系統工作時,會經常要求進入復位工作狀態,所以,系統的復位電路必須能準確、可靠地工作。這里的復位電路采用LTC1326芯片,同時實現低電平復位和手動復位功能。LTC1326能夠在有多種電壓供電的系統中實現同時對3種電壓的監控功能。為了提高芯片的抗干擾能力,應給每個Vcc引腳接一個0.1μF的對地旁路電容。
數據采集和處理模塊
·A/D接口電路
LPC2378本身提供有8路10位ADC和1路10位DAC,而該系統要求提供的A/D和D/A精度均為12位,故需要擴展外部A/D和D/A。
AD7922是12位逐次逼近型高速、低功耗的A/D轉換器,吞吐率最高可達 1MSPS。本系統采用通過LPC2378的SPI接口直接與其相連,不需要其他的附加邏輯電路。在采集過程中,選擇不同的通道進行采集。
·D/A接口電路
DAC7574是12位、低功耗、4路帶緩沖器的電壓輸出型D/A轉換芯片,最高速率可達3.4Mbps。外部為該芯片提供的工作電壓為5V,故轉換后的電壓輸出范圍是0~5V,需要設計D/A轉換后輸出電壓范圍是-10V~+10V,所以要用到兩級運算放大器,第一級構成反相求和電路,第二級構成反相比例運算放大電路。經過第一級運放后,得到-2.5V~+2.5V的電壓值,再經過第二級運放后得到-10V~+10V的電壓范圍。為了在第一級運放的輸入端獲得精準的-2.5V電壓,這里使用LM236,它是能夠提供精確的-2.5V電壓的穩壓芯片。
R/D接口電路
AD2S80A是最新一代旋轉變壓器數字轉換芯片,又叫角分解器(Resolver),是一種特殊的模數轉換器,用來測量旋轉物體的轉軸角位移和角速度。AD2S80A的分辨率有10、12、14、16bits幾種可選。用戶通過選擇不同的外接電阻和電容,可以得到不同的帶寬和跟蹤速率。本系統中只用到了R/D的8條數據線(DB1~DB8),其余8條數據線(DB9~DB16)接地。LPC2378負責處理AD2S80A送來的信號,AD2S80A與LPC2378的相關引腳直接相連,接口電路如圖2所示。
圖2 AD2S80A與LPC2378的連接圖
串口擴展模塊
MAX3074是RS-422總線的收發器,其功能是實現RS-422總線信號電平到SC16C554可接受信號電平的轉換。該系統中共使用6片MAX3074,其中4片與SC16C554的4路UART端口連接(其中兩路做為備用),其余2片與LPC2378的兩路UART端口相連。
MAX3221是RS-232總線的收發器,其功能是實現RS-232總線信號電平到LPC2378可接受信號電平的轉換。系統中使用2片MAX3221與LPC2378其余兩路UART端口相連(圖3)。
圖3 總線電平轉換示意圖
系統軟件設計
系統的軟件開發工具采用ADS1.2,設計語言使用ARM C。為了實現系統各部分的正常運行,在進行軟件設計時必須充分考慮3個因素:程序的可靠性;程序的嚴密性;程序的穩定性。
軟件程序由主程序和中斷服務程序構成。主程序中首先完成系統的初始化,接著進入一個無限循環的后臺程序,巡回地執行多個事件,完成相應的操作;使用向量IRQ中斷,中斷服務程序采用基于定時器的巡回服務流程,完成事務處理。對于CPLD的軟件設計工具采用Altera公司的MAX PlusII,使用VHDL編程語言。
結語
本文從硬件設計和軟件設計兩方面對基于LPC2378微處理器的數據采集系統的設計進行了介紹。該系統現已在中國兵器工業集團某研究所的一大型系統中得以應用,工作可靠、穩定。
參考文獻:
1. 周立功等,ARM嵌入式系統基礎教程,北京航空航天大學出版社,2005
2. 杜春雷,ARM體系結構與編程,清華大學出版社,2003
3. 楊宗德,嵌入式ARM系統原理與實例開發,北京大學出版社,2007
4. ADS1.2 Online books
5. 裘雪紅、顧新、侯伯亨等,微型計算機原理與接口技術,西安電子科技大學出版社,2001
6. 周立功等,深入淺出ARM7,北京航空航天大學出版社,2005
模數轉換器相關文章:模數轉換器工作原理
矢量控制相關文章:矢量控制原理
評論