基于mPSD32xx系列單片機(jī)無(wú)線遠(yuǎn)程IAP的實(shí)現(xiàn)
引言
傳統(tǒng)的MCU控制系統(tǒng)在下載程序時(shí)一般都是通過取下芯片用編程器燒寫,或者采用ISP方式進(jìn)行在線編程。隨著用戶需求和使用環(huán)境的不斷變化,就會(huì)要求系統(tǒng)程序被升級(jí),而采用上述兩種方式進(jìn)行程序升級(jí)時(shí)都必須要有開發(fā)人員進(jìn)行現(xiàn)場(chǎng)操作。這種升級(jí)方式對(duì)于終端分散的控制系統(tǒng)來說無(wú)疑極大地增加了開發(fā)成本,也延緩了程序的更新時(shí)間。因此,本文結(jié)合無(wú)線基站動(dòng)態(tài)環(huán)境監(jiān)控系統(tǒng), 給出了基于mPSD32xx系列單片機(jī)無(wú)線遠(yuǎn)程IAP(應(yīng)用內(nèi)編程)的具體實(shí)現(xiàn)方法,解決了上述問題。
系統(tǒng)架構(gòu)
無(wú)線基站電源、空調(diào)、基站的室內(nèi)環(huán)境等條件對(duì)整個(gè)系統(tǒng)能否正常運(yùn)行是至關(guān)重要的,為了讓無(wú)線基站有一個(gè)穩(wěn)定、可靠的運(yùn)行環(huán)境,因而設(shè)計(jì)了此采集系統(tǒng)。
針對(duì)以上環(huán)境,本采集系統(tǒng)下位機(jī)將基站電源、空調(diào)、基站內(nèi)溫度、濕度、煙霧、門控等集于一體,實(shí)時(shí)采集該系統(tǒng)所需要的各種數(shù)據(jù),同時(shí)提供自動(dòng)告警功能;上位機(jī)采用C/S模式設(shè)置不同級(jí)別的權(quán)限提供給各個(gè)監(jiān)控中心。系統(tǒng)的數(shù)據(jù)傳輸采用GPRS/GSM無(wú)線通信網(wǎng)絡(luò)接入Internet進(jìn)行遠(yuǎn)程傳輸:下位機(jī)通過GPRS/GSM把告警信息自動(dòng)上傳到監(jiān)控中心或手機(jī)等;同時(shí),監(jiān)控中心或手機(jī)可以通過GPRS/GSM網(wǎng)絡(luò)對(duì)采集器進(jìn)行查詢、配置等操作,以滿足不同的實(shí)際需要。在整個(gè)系統(tǒng)的設(shè)計(jì)過程中,為了對(duì)多任務(wù)進(jìn)行高效的調(diào)度,選用了源碼開放的mCOSII嵌入式實(shí)時(shí)操作系統(tǒng)。
硬件設(shè)計(jì)原理
mPSD32xx芯片簡(jiǎn)介
mPSD32xx包含一個(gè)標(biāo)準(zhǔn)的8032微控制器模塊和一個(gè)PSD模塊。采用模塊化設(shè)計(jì)技術(shù),不僅將構(gòu)成一個(gè)單片機(jī)應(yīng)用系統(tǒng)所需的多個(gè)功能塊(如8032核、兩個(gè)Flash、SRAM、I/O、PLD、USB接口、I2C接口、雙UART口、用于液晶顯示的DDC通道、PWM控制器、4路ADC等)集成在單一硅片上,同時(shí)還可以通過JTAG ISP方式進(jìn)行在系統(tǒng)編程,可簡(jiǎn)化嵌入式應(yīng)用系統(tǒng)的設(shè)計(jì)、縮短產(chǎn)品的開發(fā)周期、提高系統(tǒng)的可靠性、降低成本并縮小產(chǎn)品尺寸。
由于mPSD32xx系列產(chǎn)品有主Flash和第二Flash兩塊存儲(chǔ)器,使得設(shè)計(jì)人員可以在無(wú)需外加存儲(chǔ)器的情況下對(duì)Flash進(jìn)行遠(yuǎn)程更新的同時(shí)對(duì)其執(zhí)行應(yīng)用內(nèi)編程。
硬件接口設(shè)計(jì)
串口中的電平轉(zhuǎn)換選用Maxim公司的MAX202CPE芯片。由于在mPSD3234A的串口0中同時(shí)連接了GPRS模塊和門控系統(tǒng)模塊,所以在其串口0接收中采用74LS11與門芯片。
硬件配置
主Flash存儲(chǔ)器由8個(gè)扇區(qū)組成,第二Flash存儲(chǔ)器由4個(gè)扇區(qū)組成。對(duì)Flash的配置可以通過軟件PSD EXPRESS來實(shí)現(xiàn),配置結(jié)果如下:
第一Flash僅作為數(shù)據(jù)空間: FS0:? 0~0x1FFF 0x8000~0xFFFF(頁(yè)碼序號(hào)為0)
? FS1~FS7: 0x8000~0xFFFF(頁(yè)碼序號(hào)為1-7)
第二Flash僅作為程序空間: CSBOOT0: 0~0x1FFF 0x8000~0x9FF
CSBOOT1: 0xA000~0xBFFF
CSBOOT2: 0xC000~0xDFFF
CSBOOT3: 0xE000~0xFFFF
RS0: 0x2000~0x3FFF
CSIOP: 0x200~0x2FF
下載程序時(shí)將啟動(dòng)程序分別下載到FS0、 0~0x1FFF和CSBOOT0、0~0x1FFF部分。用戶程序下載到FS0~FS7、0x8000~0xFFFF部分。
軟件設(shè)計(jì)與實(shí)現(xiàn)
GPRS及模塊
本設(shè)計(jì)選用的GPRS模塊是WAVECOM公司的Q2406B,它是雙頻GPRS/GSM模塊(EGSM900/1800MHz或EGSM900/1900 MHz),內(nèi)嵌完整的TCP/IP協(xié)議棧,直接通過AT指令就可以接入Internet,并且其設(shè)計(jì)開發(fā)符合ETSI GSM Phase 2 標(biāo)準(zhǔn)。單片機(jī)完全按照標(biāo)準(zhǔn)AT指令使用9.6 kbps波特率通過串口與此模塊進(jìn)行通信。
模塊的初始化程序如下:
void GPRS_init()
{
mPSD_UART_Putchar ("AT+CMGD=1,4",0);?? //刪除所有短信
mPSD_UART_Putchar ("AT+CRES",0);?????? //釋放GPRS模塊內(nèi)存
mPSD_UART_Putchar ("AT+CSCA?",0);????? //查詢短消息中心號(hào)碼
mPSD_UART_Putchar ("AT+CMGF=0",0);???? //0:PDU模式,1:文本模式
mPSD_UART_Putchar ("AT+CMEE=1",0);?????? //打開錯(cuò)誤代碼提示信息
mPSD_UART_Putchar ("AT+CNMI=0,1",0);???? //打開短消息提示信息
mPSD_UART_Putchar("ATE0",0);??????????? //關(guān)閉回顯
mPSD_UART_Putchar ("ATW",0);
?}
其中,mPSD_UART_Putchar ("ABCD",0)函數(shù)功能是:mPSD3234A通過串口0向GPRS模塊發(fā)送字符串“ABCD”。
IAP簡(jiǎn)介
IAP是應(yīng)用在Flash程序存儲(chǔ)器的一種編程模式??梢栽趹?yīng)用程序控制下,對(duì)程序存儲(chǔ)空間進(jìn)行讀取、擦除、寫入操作。與ISP操作非常相似,不需要從電路板上取下芯片用編程器燒寫,都具有在線編程功能。兩者之間的不同點(diǎn)是:ISP通常是整片擦除、編程,在手工操作下通過PC串口下載程序到Flash,而IAP卻是在某段程序的控制下對(duì)另外一段程序Flash進(jìn)行讀寫操作。
評(píng)論