1 引 言 通常進(jìn)行單片機的實(shí)驗或開(kāi)發(fā)時(shí),傳統的并行編程方法中,編程器是必不可少的。仿真、調試完的程序需要借助編程器燒到單片機內部或外接的程序存儲器中。在開(kāi)發(fā)過(guò)程中,程序每改動(dòng)一次就要拔下電路板上的芯片,編程后再插上。隨著(zhù)計算機技術(shù)的發(fā)展,許多公司推出了帶有片內FLASH存儲器的MCU,FLASH存儲器具有電可擦除、無(wú)需后備電源保護數據、可在線(xiàn)編程等特點(diǎn)。在線(xiàn)編程目前有兩種實(shí)現方法:在線(xiàn)系統編程(ISP)和在線(xiàn)應用編程(IAP)。ISP一般是通過(guò)單片機專(zhuān)用的串行編程接口對單片機內部的FLASH存儲器進(jìn)行編程,例如AT-MEL公司的單片機AT89S52就提供了一個(gè)SPI串行接口對內部程序存儲器編程(ISP)。 在線(xiàn)編程(ISP)允許單片機內部運行的程序去改寫(xiě)FLASH存儲器的內容,可以在運行過(guò)程中修改某些運行參數,已經(jīng)編程的器件也可以用ISP方式擦除或再編程。單片機在ISP模式下上電時(shí),可以進(jìn)行ISP操作,在ISP模式下,單片機通過(guò)串行端口與外部主機(如PC機或終端)通信,從主機接收命令和數據,用于擦除和再編程代碼存儲區。ISP的實(shí)現一般只需要很少的外部電路輔助實(shí)現,使用ISP技術(shù),連接一根下載線(xiàn)即可對芯片編程,不再需要編程器就可進(jìn)行單片機的實(shí)驗和開(kāi)發(fā),單片機芯片可以直接焊接在電路板上,調試結束即成成品,甚至可以遠程在線(xiàn)升級或改變單片機中的程序。 2 AT89S52 ISP原理 AT89S52具有ISP功能。在RESET引腳處于高電平時(shí),利用P1.5(MOSI),P1.6(MISO),P1.7(SCK)三引腳的數據設置或傳送達到程序下載的目的,P1.5(MOSI)引腳作為串行指令的輸入端口,P1.6(MISO)引腳作為串行數據的輸出端口,P1.7(SCK)引腳作為串行移位脈沖的輸入端口。 AT89S系列中的FLASH地址編址是以字節為單位的,在使用過(guò)程中應注意高低字節的區別,上位機和目標板通信時(shí),一般都是4字節的指令,第1字節為操作碼,第2、第3字節一般為地址碼,第4字節為數據。 根據串行下載波形圖和串行下載編程指令集即可完成有關(guān)在線(xiàn)下載的操作。 3 在線(xiàn)編程控制系統的設計 3.1 系統結構 AT89S52負責人機界面的信息交互,主要由顯示部分,鍵盤(pán)部分和數據通路組成。 顯示部分由AT89S52的P1,P2口組成。P2是八位的顯示數據通路,P1.1~P1.4是4個(gè)LED的使能線(xiàn),達到動(dòng)態(tài)顯示4位數據的效果。 鍵盤(pán)部分由INT0,INT1,CT0,CT1組成。利用中斷的優(yōu)先級嵌套實(shí)現命令與數據的輸入,減少了鍵盤(pán)的體積。硬件分配如下: 數據通路部分主要是PSP的控制。PSP是PIC16FX系列微處理器專(zhuān)門(mén)針對8位機的通用數據端口,由CS,WR,RD,8位數據線(xiàn)組成,可供AT89S52直接控制。 PIC收到PSP的數據后會(huì )產(chǎn)生一個(gè)中斷響應,由軟件設計者決定該中斷如何處理。因此,可以設定0XC0~0XFF為命令字節,供控制使用,0X00~0X09為功能號,組合起來(lái)就可以實(shí)現各種控制的命令。 PIC16FX具有4路A/D通道,精度為10 b,轉換時(shí)間為56μs。內置硬件看門(mén)狗電路,提高了可靠性,節省了軟件開(kāi)支。利用其4路中斷功能實(shí)現系統復位及檢修測試功能。PGM接口(在線(xiàn)編程接口)可采用ICD2適配器進(jìn)行在線(xiàn)編程和調試。 3.2 系統功能 (1) AT89S52頻率4 MHz,具有在線(xiàn)編程,無(wú)需編程器直接燒寫(xiě)的功能,用AT89S52[INT0],[INT1],[CT0],[CT1]四個(gè)引腳單獨引出,方便作為鍵盤(pán)接口。 (2) AT89S52 P1.1~P1.4分別作為L(cháng)ED1~4的使能線(xiàn),高電平有效,P2口作為L(cháng)ED1~4的八位顯示數據口。 (3) AT89S52串口與16F877A的串口可直接進(jìn)行串口通訊。 (4) AT89S52 P0口及[ALE十P1.0],[WR],[RD]作為8位并行端口與16F877A通訊。 (5) PIC16F877A:頻率20 MHz: ① PA-AN[0]-板載A/D通道:VREF+/-可調 AN[1],[5]一外接A/D通道,AN[2-3]-VREF+/-可調,AN[4]-T0CKI-WDT監控。 ② PB-PB0-外接INT中斷信號,低電平/下降沿有效,PB1,2,4,5作為INPUT1234,低電平/下降沿有效。 3 軟件設計 3.1 AT89S52部分 首先執行系統初始化,初始時(shí)鐘,全局變量,定時(shí)器,IO端口,鍵盤(pán)中斷服務(wù)子程序。 然后進(jìn)入MAINLOOP循環(huán)程序,等待接受鍵盤(pán)中斷。如果鍵盤(pán)有輸入動(dòng)作,系統產(chǎn)生鍵盤(pán)中斷,進(jìn)入鍵盤(pán)中斷服務(wù)子程序。 鍵盤(pán)中斷服務(wù)子程序的主要功能是生成命令數據包,并根據用戶(hù)指令處理該命令數據包。 命令數據包的格式如下: 若用戶(hù)確認,則發(fā)送到PIC16F877A執行; 若用戶(hù)取消,則退出鍵盤(pán)中斷服務(wù)子程序,重新進(jìn)入等待狀態(tài)。 3.2 PIC軟件結構 PIC系統初始化后首先按默認參數啟動(dòng)PWM輸出,在啟動(dòng)過(guò)程中不斷地進(jìn)行A/D轉換,將采集到的數據根據PID策略調節PWM的占空比,從而達到調節電機轉速的目的,同時(shí)不問(wèn)斷的監聽(tīng)PSP通道,若收到AT89S52的命令數據包,馬上更新默認啟動(dòng)參數,讓電機以新參數模式運行在新轉速狀態(tài)。 4 結 語(yǔ) 利用AT89S52作為主處理器,PIC16F87X作為從處理器,使控制精度大為提高,可達10位PWM精度。AT89S52與PIC16F87X具有在線(xiàn)編程功能,功能齊全,片上資源豐富,可以滿(mǎn)足系統升級要求。隨著(zhù)帶有系統在線(xiàn)編程功能的單片機得到廣泛應用與發(fā)展,ISP技術(shù)成了未來(lái)發(fā)展方向,基于在線(xiàn)編程技術(shù)的控制系統應用也將越來(lái)越廣泛。 |