機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
在遠(yuǎn)程通信中實現(xiàn)89LPC932的ISP功能
在遠(yuǎn)程通信中實現(xiàn)89LPC932的ISP功能
 更新時間:2008-8-16 20:53:20  點擊數(shù):3
【字體: 字體顏色

    早期單片機(jī)應(yīng)用軟件開發(fā)完成以后,是通過相應(yīng)的編程器將程序燒寫入單片機(jī)的ROM或EPROM里,這樣每一次擦寫程序都需要將芯片從電路板上拆卸下來,不利于研制開發(fā),對于日后的產(chǎn)品軟件升級也非常不方便。隨著新一代單片機(jī)的出現(xiàn),具有ISP功能的芯片得到越來越多嵌入式系統(tǒng)開發(fā)工程師的青睞,ISP功能的使用方法也越來越多,飛利浦公司的89LPC932是一款較早推出的高性能處理器。

    ISP(In-System Programming,在系統(tǒng)編程)是指電路板上的空白器件可以編程寫入最終用戶代碼,而不需要從電路板上取下器件,已經(jīng)編程的器件也可以用ISP方式擦除或再編程。

    用反匯編軟件將89LPC932中Boot ROM源代碼(機(jī)器碼)反匯編為ASM文件,分析其數(shù)據(jù)處理與通信控制,就能明白ISP功能實現(xiàn)的具體方法,并修改使其能夠為我們所用,在遠(yuǎn)程RS485通信網(wǎng)絡(luò)中實現(xiàn)ISP功能,從而在某些特定環(huán)境下依然能夠穩(wěn)定工作。

1 對Boot ROM中部分代碼的分析
    在這里只針對通信部分進(jìn)行簡要闡述。

1.1 自動波特率的確定與校驗
   
上位機(jī)按照自身的波特率,向下位機(jī)發(fā)送一個大寫的英文字符“U”,ASClI碼為55H,二進(jìn)制為“01010101B”,也就是一組“O”,“1”相間的數(shù)據(jù)。下位機(jī)收到數(shù)據(jù),計算出1位數(shù)據(jù)的傳輸時間(2個“1”之間的時間間隔),則所對應(yīng)的通信波特率就可以計算出來,下面是匯編語言程序:


   

    EXECHO.
    RET ;返回

    計算出波特率后,調(diào)整串口,再收發(fā)一個字節(jié),將得到的數(shù)與U的ASCII碼相對比。如果相等,程序繼續(xù)執(zhí)行;如果不相等,程序循環(huán)等待。從這里可以看出,為保證通信成功,上位機(jī)至少要向下位機(jī)發(fā)送2個“U”。

1.2 通信報的內(nèi)容

    通信建立后,就可以接收各種命令,并進(jìn)行校驗和的比較,判斷本次通信是否成功以及回傳相應(yīng)的數(shù)據(jù)。匯編語言程序如下:

   
    在系統(tǒng)穩(wěn)定、工作狀態(tài)正常時,Boot ROM中ISP程序接收、發(fā)送的數(shù)據(jù)主要就是這些,其他異常處理部分不再贅述。

2 遠(yuǎn)程通信網(wǎng)絡(luò)的使用問題
   
當(dāng)在遠(yuǎn)程RS485通信網(wǎng)絡(luò)中(上位機(jī)與下位機(jī)一對一情況下)想使用89LPC932的ISP功能時,發(fā)現(xiàn)直接使用應(yīng)用軟件“Philips ISP下載器”會提示串口通信失敗。利用“串口調(diào)試器SSCOM”調(diào)試發(fā)現(xiàn),單字節(jié)通信正常,多字節(jié)通信不正常,分析程序發(fā)現(xiàn)問題出現(xiàn)在通信轉(zhuǎn)換模式上。89LPC932的Boot ROM中,ISP程序使用RS232標(biāo)準(zhǔn)工作,是全雙工工作模式;而通信網(wǎng)絡(luò)中使用RS485標(biāo)準(zhǔn)工作,為半雙工工作模式,兩者混用當(dāng)然會出現(xiàn)問題。

    知道問題所在,程序修改起來就方便多了。首先,對于上位機(jī)發(fā)來的指令,不再采用收1個字節(jié)回傳1個字節(jié)的方法,而是先將控制命令全部接收下來,再分析處理。然后,把所需數(shù)據(jù)發(fā)送出去,將整個工作過程轉(zhuǎn)為半雙工形式,修改后的通信報PROCESS部分程序如下:

   
    需要注意的是:在子程序ECHO中,回傳1個字節(jié)那一步要取消掉,這是改為半雙工的關(guān)鍵。另外,這里所談到的只是針對點對點通信,如果網(wǎng)絡(luò)中有多個下位機(jī)共存,那么上位機(jī)在發(fā)送命令時,需要注意所指定下位機(jī)的軟、硬地址問題。

3  結(jié)論
    通過實驗證明,該方法簡單有效,能夠在原有Boot ROM ISP程序基礎(chǔ)上將其成功地移植到遠(yuǎn)程RS485通信網(wǎng)絡(luò)中。全雙工工作模式改為半雙工工作模式,操作簡單,能夠保證通信正常,并能完全利用原有的多種ISP下載器,減少了開發(fā)成本,這為飛利浦89LPC932Flash單片機(jī)的應(yīng)用提供了一個新穎的使用方法。


 


  • 上一篇: 充分理解功率放大器理論,實現(xiàn)高效的ISM發(fā)送器
  • 下一篇: CDMA 870~880MHz頻段的結(jié)環(huán)行器設(shè)計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1