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