一 前言: 我因為工作的需要,經常需要 開發 在不同OS的外設通信程序,有一段時間在寫 unix 下的串行通信程序時,發現unix/ linux 的串口結合了很多終端特性(比如在TTY模式下會自動處理某些字符終端控制符),與windows 的方式有很大的差異,也因此花了不少
一 前言: 我因為工作的需要,經常需要
開發在不同OS的外設通信程序,有一段時間在寫
unix下的串行通信程序時,發現unix/
linux的串口結合了很多終端特性(比如在TTY模式下會自動處理某些字符終端控制符),與windows的方式有很大的差異,也因此花了不少時間。我想現在很多人都在做linux下的開發,也會有人碰到和我一樣的問題,因此我編寫了sct(serial communication tracer)串行通信調試器,希望它能幫助其他人進行串口通信開發,同時這個軟件是以GPL方式發布的,我希望它的源代碼會對別人有一定的參考價值。
二 軟件下載地址: http://www.makeidea.net/freesoft.html#sct
三 軟件說明: sct(Serial Communication Tracer的縮寫)是一個很有用的
Linux/
Unix串行通信調試工具,軟件內置了Shell命令解釋器,你可以通過直接輸入簡短的命令和參數來控制串口的打開/關閉和進行各種發送/接收活動,以下是sct 1.04版的簡短的例子,雙引號之間的內容為輸入的命令
??"?" 顯示所有命令列表
??"sel /dev/ttyS0" 選擇/dev/ttyS0為當前端口
??"stat" 顯示當前端口的設備名稱,通信參數設置,打開/關閉狀態
??"open" 打開當前端口
??"close" 關閉當前端口
??"term" 進入terminal模式,模擬一台ASCII終端
??"setbuf 1 a" 用ASCII符設置第一緩沖區的數據,共有10個緩沖區可用
??"setbuf 1 h" 用16進制數設置第一緩沖區的數據,共有10個緩沖區可用
??"dispbuf 1" 用Hex碼和ASCII碼顯示第一緩沖區的內容
??"send 1" 將第1緩沖區的內容從當前端口發送出去
??"recv 2" 從當前端口接收數據並存放到第2緩沖區
??"sendrecv 1 2" 從當前端口發送第1緩沖區的內容,然後立即接收數據並存放到第2緩沖區,用於對外設"命令-應答"模式調試
??"sendrecv 1 1" 從當前端口發送第1緩沖區的內容,然後立即接收數據並覆蓋到第1緩沖區,用於對外設"命令-應答"模式調試
??"savebuf log.dat 1" 將第1緩沖區的內容存放到數據文件log.dat
??"loadbuf 1 log.dat" 將數據文件log.dat的內容裝載到第1緩沖區
*對於windows下的用戶,只要安裝了cygwin的環境,也可以運行sct(需要在cygwin下重新編譯,不需要更改源代碼),另外在使用中不要忘記將當前端口用"sel"命令設為"com1"或"com2"等(缺省為/dev/ttyS0)
四 sct1.04版以後的開發計劃 sct中的對串口部分的代碼將被借鑒到我的另一個GPL軟件包vsio中,vsio是虛擬流式IO的縮寫,vsio以流的方式操作常見的PC外設,比串口/並口/USB等。屆時sct將直接利用vsio操作io端口,不僅能調試串口,還能調試並口/USB等,sct將成為真正意義上的"串行通信調試器",而不是"串口調試器"。