0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于89LPC932處理器在遠(yuǎn)程RS485通信網(wǎng)絡(luò)中的應(yīng)用研究

電子設(shè)計(jì) ? 來源:單片機(jī)與嵌入式系統(tǒng)應(yīng)用 ? 作者:王曉寧,史俊富 ? 2021-06-23 14:13 ? 次閱讀

早期單片機(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功能實(shí)現(xiàn)的具體方法,并修改使其能夠?yàn)槲覀兯?,在遠(yuǎn)程RS485通信網(wǎng)絡(luò)中實(shí)現(xiàn)ISP功能,從而在某些特定環(huán)境下依然能夠穩(wěn)定工作。

1 對Boot ROM中部分代碼的分析

在這里只針對通信部分進(jìn)行簡要闡述。

1.1 自動(dòng)波特率的確定與校驗(yàn)

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

poYBAGDS0Y6AfQBjAACzH5AeMTU012.png

pYYBAGDS0YiADgFyAADrLszyEck710.png

EXECHO.

RET ;返回

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

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

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

poYBAGDS0YGAN-kWAAF4Ob20gqw553.png

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

2 遠(yuǎn)程通信網(wǎng)絡(luò)的使用問題

當(dāng)在遠(yuǎn)程RS485通信網(wǎng)絡(luò)中(上位機(jī)與下位機(jī)一對一情況下)想使用89LPC932的ISP功能時(shí),發(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個(gè)字節(jié)回傳1個(gè)字節(jié)的方法,而是先將控制命令全部接收下來,再分析處理。然后,把所需數(shù)據(jù)發(fā)送出去,將整個(gè)工作過程轉(zhuǎn)為半雙工形式,修改后的通信報(bào)PROCESS部分程序如下:

poYBAGDS0XuACm2gAAEwOtQuszM636.png

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

3 結(jié)論

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

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19293

    瀏覽量

    229966
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44561

    瀏覽量

    635656
  • 通信網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    21

    文章

    2040

    瀏覽量

    52053
收藏 人收藏

    評論

    相關(guān)推薦

    RS-485通信網(wǎng)絡(luò)如何保護(hù)

    保護(hù)RS-485通信網(wǎng)絡(luò)不受有害
    發(fā)表于 07-09 17:01

    RS485通信原理是什么?RS485應(yīng)用存在哪些問題?

    RS485特點(diǎn)是什么?RS485通信原理是什么?RS485應(yīng)用存在哪些問題?
    發(fā)表于 05-20 06:06

    遠(yuǎn)程通信中如何去實(shí)現(xiàn)89LPC932的ISP功能?

    遠(yuǎn)程通信中如何去實(shí)現(xiàn)89LPC932的ISP功能?
    發(fā)表于 06-02 06:38

    回收西門子cp5612a2處理器 西門子rs485連接 西門子通訊卡cp5613

    回收,西門子dp通信線,,聯(lián)系方式 ***西門子通訊卡cp5612西門子通信處理器cp5614西門子cp5612a2處理器西門子rs485連接
    發(fā)表于 06-14 10:58

    基于FPGA的RS485通信接口設(shè)計(jì)

    介紹RS485是一個(gè)定義平衡數(shù)字多點(diǎn)系統(tǒng)的驅(qū)動(dòng)和接收的電氣特性的標(biāo)準(zhǔn),該標(biāo)準(zhǔn)由電信行業(yè)協(xié)會和電子工業(yè)聯(lián)盟定義。使用該標(biāo)準(zhǔn)的數(shù)字通信網(wǎng)絡(luò)
    發(fā)表于 07-26 06:21

    RS485通信協(xié)議

    RS485通信協(xié)議 、RS485 通信協(xié)議1.概述C320 系列變頻提供標(biāo)準(zhǔn)RS485
    發(fā)表于 04-07 17:26 ?89次下載

    基于ARM9與LINUX的RS485總線的通信接口設(shè)計(jì)

    ARM9處理器S3C2440上設(shè)計(jì)RS485通信接口,實(shí)現(xiàn)與總線上其他設(shè)備的通信,利用ARM9處理器
    發(fā)表于 12-07 09:28 ?1.1w次閱讀
    基于ARM9與LINUX的<b class='flag-5'>RS485</b>總線的<b class='flag-5'>通信</b>接口設(shè)計(jì)

    基于RS485總線設(shè)計(jì)的多處理器RS485通信網(wǎng)絡(luò)

    的運(yùn)行狀況;BPCU 與 RPDU 及發(fā)電機(jī)控制 GCU(GeneratorControl Unit)之間通過 RS485 總線及其它通信總線 (如CAN 總線或 429 總線等)進(jìn)行通信
    發(fā)表于 06-13 15:15 ?3929次閱讀
    基于<b class='flag-5'>RS485</b>總線設(shè)計(jì)的多<b class='flag-5'>處理器</b><b class='flag-5'>RS485</b><b class='flag-5'>通信網(wǎng)絡(luò)</b>

    遠(yuǎn)程RS485通信網(wǎng)絡(luò)實(shí)現(xiàn)ISP功能

    用反匯編軟件將89LPC932Boot ROM源代碼(機(jī)器碼)反匯編為ASM文件,分析其數(shù)據(jù)處理通信控制,就能明白ISP功能實(shí)現(xiàn)的具體方法,并修改使其能夠?yàn)槲覀兯茫?/div>
    發(fā)表于 03-15 16:50 ?2884次閱讀
    <b class='flag-5'>遠(yuǎn)程</b><b class='flag-5'>RS485</b><b class='flag-5'>通信網(wǎng)絡(luò)</b><b class='flag-5'>中</b>實(shí)現(xiàn)ISP功能

    rs485通信網(wǎng)絡(luò)技術(shù)分析及485集線的應(yīng)用

    rs485網(wǎng)絡(luò)rs485/MODBUS是現(xiàn)在流行的一種布網(wǎng)方式,其特點(diǎn)是實(shí)施簡單方便 ,而且現(xiàn)在支持rs485的儀表又特多,特別是油品行
    的頭像 發(fā)表于 09-07 09:08 ?6878次閱讀

    如何保護(hù)RS-485通信網(wǎng)絡(luò)不受EMC的影響

    保護(hù)RS-485通信網(wǎng)絡(luò)不受有害EMC事件影響
    的頭像 發(fā)表于 07-29 06:13 ?2798次閱讀

    如何保護(hù)RS485通信網(wǎng)絡(luò)不受影響

    ADI在線研討會:保護(hù)RS485通信網(wǎng)絡(luò)不受有害EMC事件影響
    的頭像 發(fā)表于 06-14 06:15 ?4286次閱讀
    如何保護(hù)<b class='flag-5'>RS485</b><b class='flag-5'>通信網(wǎng)絡(luò)</b>不受影響

    RS485工業(yè)通信網(wǎng)關(guān)的原理是什么?

    ,工業(yè)自動(dòng)化、樓宇自控、能源監(jiān)控等領(lǐng)域得到了廣泛應(yīng)用。本文將詳細(xì)介紹RS485工業(yè)通信網(wǎng)關(guān)的原理及其工作流程,以期為讀者提供深入的理解。 二、RS485
    的頭像 發(fā)表于 05-27 17:32 ?485次閱讀

    如何提高RS485通信的可靠性?

    現(xiàn)代工業(yè)自動(dòng)化和智能化的發(fā)展進(jìn)程,RS485通信作為一種常用的串行通信標(biāo)準(zhǔn),因其具有傳輸距離遠(yuǎn)、支持多點(diǎn)
    的頭像 發(fā)表于 09-20 08:07 ?377次閱讀
    如何提高<b class='flag-5'>RS485</b><b class='flag-5'>通信</b>的可靠性?

    如何構(gòu)建RS485通信網(wǎng)絡(luò) RS485串口助手的使用與配置

    構(gòu)建RS485通信網(wǎng)絡(luò) 構(gòu)建RS485通信網(wǎng)絡(luò)需要考慮網(wǎng)絡(luò)布線、設(shè)備連接、通信協(xié)議等多個(gè)方面。以
    的頭像 發(fā)表于 11-28 15:40 ?590次閱讀