


摘要:基于GSM通訊技術,以ARM微控制器LPC2109為核心,通過控制瓦斯濃度傳感器CO-BF采集工作環境的瓦斯濃度,再將達到警告級別的濃度值通過TC35短消息模塊發送出去的方案。從硬件搭建和軟件設計出發,介紹了瓦斯濃度警告器的實現。為瓦斯濃度的實時采集及預警提供了更加有效的解決方案。
關鍵詞:LPC2109;GSM;TC35;瓦斯濃度;AT指令
DOI: 10.3969/j.issn.1005-5517.2012.10.015
引言
由于短消息具有內容直觀,傳輸距離遠,用戶無需建立信號中轉站,如今在各個領域都得到了廣泛的應用。本文通過GSM模塊TC35的短消息功能實現了瓦斯濃度信息的遠距離發送。
硬件電路的設計方案
系統總體方案
硬件設計原理框圖參見圖1。
GSM模塊的選擇
GSM模塊采用Siemens公司的TC35,可以快速安全可靠地實現系統方案中的數據、語音傳輸,短消息服務(SMS)和傳真功能。模塊的工作電壓為3.3~4.8 V,可以工作在900 MHz和1800 MHz兩個頻段。具有AT命令集接口,支持文本和PDU模式的短消息、傳真。通過40PIN的ZIF連接器,實現電源連接、指令、數據、語音信號、及控制信號的雙向傳輸。模塊集射頻電路與基帶于一體,其主要組成結構分為6個部分:GSM基帶處理器、GSM射頻模塊、供電模塊(ASIC)、閃存、ZIF連接器及天線接口。
微控制器芯片的選擇
因為需要通過串口給TC35模塊發送數據和命令,所以需要選擇一個合適的帶有串口通訊功能的微控制器來作為設計的主控芯片。設計選用NXP公司的LPC2109微控制器。
LPC2109有8K的RAM空間和64K的Flash空間,足以燒寫和運行相關代碼,工作溫度-40℃~+85℃,適合工作在各種惡劣環境中。內核運行頻率可達60MHz,內部集成一個IIC通訊模塊,兩個SPI通訊模塊,兩路32位定時器模塊,四路10位A/D轉換模塊,四路外部中斷接口,六路PWM通道并有12個外部中斷引腳以及46個GPIO接口。
瓦斯濃度采集模塊
設計選用Alphasense公司的CO-BF型一氧化碳傳感器。該傳感器的測量范圍為5000ppm,靈敏度80~120nA/ ppm, 響應時間小于30秒,線性范圍為-15ppm至+15ppm,分辨率為0.5ppm尺寸,工作溫度為-30~50℃,工作濕度為15~90%RH。以上參數非常適合設計的需要。
設計通過CO-BF型傳感器采集現場CO濃度模擬信號, 經主控芯片LPC2109的A /D轉換模塊變成數字量,并通過做相應的處理后判斷轉換值是否超過預警濃度值。若超出預警值,則通過斷電控制模塊斷開電源,并通過LPC2109的串口模塊向TC35模塊發送報警短消息到指定接收的SIM卡上。
圖1 硬件設計原理框圖
圖2 程序流程圖
軟件設計方案
程序流程圖
程序流程圖如圖2所示。
瓦斯濃度采集程序設計
CO-BF型一氧化碳傳感器實時采集現場瓦斯濃度,并將濃度轉換成電壓信號,該電壓信號作為主控制器芯片LPC2109的A/D轉換模塊的信號輸入,通過讀取A/D轉換模塊的采樣值來獲取現場的瓦斯濃度。讀瓦斯濃度代碼,即A/D轉換代碼如下所示。
ADInit函數
函數功能:AD模塊初始化,將P0.27用做AIN0,禁止AD轉換中斷
入口參數:無
返回值 :無
void ADInit(void)
{
PINSEL1 = ~(3 << 22);
//清零PINSEL1寄存器的位23位22
PINSEL1 |= (1 << 22);
// P0.27引腳被用AD轉換0通道輸入引腳AIN0
ADINTEN = 0;
//禁止0通道AD轉換完成產生中斷
}
ADStart函數
函數功能:AD轉換啟動函數,選擇AIN0作為采樣引腳,返回轉換結果
入口參數:無
返回值 :val AD轉換結果
UINT32 ADStart()
{
UINT32 val; ADCR = (1 << 0) | ((Fpclk/1000000-1)<< 8) | (2 << 17) | (1 << 21) | | (1 << 24);
do
{
val = ADDR0;
//0通道數據寄存器ADDR0的值賦給val
}
while((val 0x80000000) == 0);//當轉換完成后,ADDR0的位31置1,跳出循環
ADCR = ~0x01000000;
//AD控制寄存器START字段清零,不啟動AD轉換
val =(val >> 6) 0x000003f; //取 val的位15:6,作為轉換結果
return val;
//返回轉換結果
}
短消息發送程序的軟件設計
AT指令介紹
AT即Attention,AT指令應用于終端設備與控制器之間的連接與通信。AT指令集是從終端設備(Terminal Equipment,TE)或數據終端設備(Data Terminal Equipment,DTE)向終端適配器(Terminal Adapter,TA)或數據電路終端設備(Data Circuit Terminal Equipment,DCE)發送的。其對所傳輸的數據包大小有定義:即對于AT指令的發送,除AT兩個字符外,最多可以接收1056個字符的長度(包括最后的空字符)。AT指令以回車作為結尾,響應或上報以回車換行為結尾。
TC35模塊提供的命令接口符合GSM07.05和GSM07.07規范。GSM07.07中定義的AT Command接口,提供了一種移動平臺與數據終端設備之間的通用接口。數據終端設備,即微控制器可以使用AT指令通過串口向GSM模塊發送各種命令。通過AT指令,可以控制短消息的接收與發送。與短消息發送相關的AT指令有“AT+CMGD”(刪除短消息),“AT+CMGF”(設置消息格式),“AT+CMGR”(讀取短消息),“AT+CMGS”(發送短消息)等。
AT指令發送程序的實現
因為AT指令是微控制器通過串口發送給TC35模塊的,因此AT指令的發送是通過串口數據發送來實現的,發送代碼如下所示。
sendchar函數
函數功能:發送數據到串口1
入口參數:ch 發送的數據
返回值 :U1THR
int sendchar (int ch)
{
while (!(U1LSR 0x20));
//等待發送保持寄存器U1THR為空閑
return (U1THR = ch);
//將發送的數據存入U1THR,并返回
}
表1 人對CO的反應
實驗分析
北方農村喜歡用煤球取暖,用煙筒排放一氧化碳,但是煙筒是耗材,用一段時間就會銹掉,發生人中毒的事情,嚴重時會出現生命危險。
具體數據可參照表1 人對CO的反應。
針對小房間,我們將報警濃度設定為250ppm。當濃度高于250ppm時,蜂鳴器鳴叫,但這時,可能主人已經熟睡;立即將報警信息以短消息的方法,發給親友,做到最大程度避免危險事件。
結語
基于TC35短消息模塊的瓦斯濃度報警器使用全球移動通訊系統來傳遞瓦斯報警信息,具有高效性,快速性,穩定性以及傳播距離廣的優勢,并且短消息服務費極低。無論身在何處,總能第一時間接收到相應的警告信息,以便做出快速的、正確的處理。設計可以廣泛應用于對瓦斯濃度有嚴格限制的環境。