PC機與單片機串行通信中實現命令批處理
發布時間:2008/5/27 0:00:00 訪問次數:935
摘要:介紹pc機與mcs-51單片機通信批處理命令的實現思想、方法、通信協議和c51程序平臺。為pc機與單片機間串行通信程序設計提供一種方法上的新思路。 關鍵詞:批處理 mcs-51單片機 通信協議 在pc機與mcs-51單片機之間進行串行通信時,基本是一對一的,即用pc機向單片機每發1條命令,就等待單片機的1條返回信息。這樣可能把大量時間浪費在pc機與單片機的通信過程中了。為此筆者經過實踐,設計出可以批處理執行pc機發給單片機的命令,就像dos操作系統中的批處理命令一樣,可連續批處理信息,結果當然提高了系統速度。文中提供了部分平臺式c51軟件源代碼,以供大家參考。 1 通信協議 (1)通信數據格式 pc機→mcs-51單片機數據格式如表1所列。
表1 stx len comma data[0]…data[n-1] edc etx 開始 長度 命令 數據體 校驗碼 結束碼 0x60 n+2(2byte) (2byte) stx^len^commandh^
commandl^data[0]…data[n-1] 0x03 mcs-51單片機→pc機數據格式如表2所列。
表2 stx len status data[0]…data[n-1] edc etx 開始 長度 命令 數據體 校驗碼 結束碼 0x60 n+2(2byte) 2(byte) stx^len^commandh^
commandl^data[0]..data[n-1] 0x03 (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]格式: command data[0]~-data[n-1] xxxxh 數據體
摘要:介紹pc機與mcs-51單片機通信批處理命令的實現思想、方法、通信協議和c51程序平臺。為pc機與單片機間串行通信程序設計提供一種方法上的新思路。 關鍵詞:批處理 mcs-51單片機 通信協議 在pc機與mcs-51單片機之間進行串行通信時,基本是一對一的,即用pc機向單片機每發1條命令,就等待單片機的1條返回信息。這樣可能把大量時間浪費在pc機與單片機的通信過程中了。為此筆者經過實踐,設計出可以批處理執行pc機發給單片機的命令,就像dos操作系統中的批處理命令一樣,可連續批處理信息,結果當然提高了系統速度。文中提供了部分平臺式c51軟件源代碼,以供大家參考。 1 通信協議 (1)通信數據格式 pc機→mcs-51單片機數據格式如表1所列。
表1 stx len comma data[0]…data[n-1] edc etx 開始 長度 命令 數據體 校驗碼 結束碼 0x60 n+2(2byte) (2byte) stx^len^commandh^
commandl^data[0]…data[n-1] 0x03 mcs-51單片機→pc機數據格式如表2所列。
表2 stx len status data[0]…data[n-1] edc etx 開始 長度 命令 數據體 校驗碼 結束碼 0x60 n+2(2byte) 2(byte) stx^len^commandh^
commandl^data[0]..data[n-1] 0x03 (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]格式: command data[0]~-data[n-1] xxxxh 數據體