• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > PC機與單片機串行通信中實現命令批處理

    PC機與單片機串行通信中實現命令批處理

    作者: 時間:2012-04-10 來源:網絡 收藏

     在機與MCS-51之間進行時,基本是一對一的,即用機向每發1條,就等待的1條返回信息。這樣可能把大量時間浪費在機與單片機的過程中了。為此筆者經過實踐,設計出可以批執行PC機發給單片機的,就像DOS操作系統中的批一樣,可連續批信息,結果當然提高了系統速度。文中提供了部分平臺式C51軟件源代碼,以供大家參考。

    本文引用地址:http://www.czjhyjcfj.com/article/171665.htm

    1 協議

    (1)通信數據格式
    PC機→MCS-51單片機數據格式如表1所列。
    MCS-51單片機→PC機數據格式如表2所列。

    27.jpg

    (2)初始通信參數

    PC機與單片機間(9600,n,8,1)即波特率為9600 baud,1起始位,8數據位,1停止位,無奇偶校驗。

    (3)數據收發方式

    所有數據按二進制單字節發送。

    (4)發送數據順序
      發送同步碼(1Byte):Stx=0X60
      發送后續字節的長度(2Byte):Len=2+N
      發送Len個后續數據字節(N+2 Byte):CommandH,CommandL,Data[0]…Data[N-1]
      發送校驗碼(1Byte): Edc=Stx^CommandH^ CommandL^Data[0]^…Data[N-1]
      發送結束碼(1Byte): Etx=0X03

    2 單條命令COMMAND[n]

    COMMAND[n]格式:

    20.jpg

    一般把單條命令的長度控制在255以內。
    PC機向單片機發送數據序列為:
    STX,LENH,LENL,COMMANDH,COMMANDL,DATA…DATA,EDC,ETX
    3 批處理的思想方法

    (1)批處理命令BATCH_COMMAND (0X0000)

    PC格式:

    21.jpg

    NUM——后續命令的個數;
    Flag——需要返回的標志(00為要返回數據,其它為無需返回數據)。
    COMMAND[i]=LEN,子命令體
    功能:批處理執行功能。
    返回狀態及數據:根據Flag標志決定是否返回數據,按發送命令的順序返回數據。

    (2)控制批處理轉移的命令

    功能:沒有數據和狀態返回,控制下位機跳轉。

    ① 控制BATCH_If(0X0001)用于判斷,條件執行命令

    功能:單片機遇到該命令,執行判斷,如果結果為邏輯真,則執行緊跟BATCH_If的第1條命令;否則執行緊跟BATCH_If第2條命令。

    PC格式:

    22.jpg

    num: 返回數據從右到左的第幾個數據,為0時為狀態數據的低位字節;
    EQUAL/NOT——00為相等,1為不等;
    VALUE——數值。
    返回:無。

    通信相關文章:通信原理



    上一頁 1 2 3 4 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 女性| 姜堰市| 吉首市| 宝应县| 项城市| 宁武县| 历史| 新安县| 夹江县| 饶阳县| 乳源| 乌拉特前旗| 铜川市| 会昌县| 沅陵县| 临夏县| 张家界市| 德安县| 陵川县| 西平县| 三门县| 民县| 茶陵县| 华池县| 津南区| 哈尔滨市| 敦化市| 镇平县| 泰兴市| 教育| 惠来县| 尤溪县| 三门县| 和田县| 运城市| 察哈| 堆龙德庆县| 夏邑县| 商南县| 中牟县| 菏泽市|