[toc]
因為現在電腦基本不配備串行接口,所以,usb轉串口成為硬件調試時的必然選擇。目前知道的,PL2303的驅動是有的,在dev下的名稱是
ttyUSB*
。
Minicom,是Linux下應用比較廣泛的串口軟件,這里簡單介紹minicom使用。
minicom配置:
安裝完成后,請不要著急打開軟件。需先進行配置。具體步驟如下:
查看串口設備及文件權限
linux下的所有操作面向用戶的都是文件操作,在對串口操作之前,我們應該先確認自己對該文件有沒有讀寫權限。
ls -l /dev/ttyUSB*
linux下的usb串口命名為ttyUSB*,運行上面命令,可以看到有幾個設備掛載。
我們這里是:
crw-rw---- 1 root dialout 188, 0 Apr 10 17:10 /dev/ttyUSB0
只有ttuUSB0.再用lsusb查看:
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 046d:c05a Logitech, Inc. Optical Mouse M90
Bus 007 Device 002: ID 046d:c31d Logitech, Inc.
Bus 004 Device 009: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
usb 004正是我們掛上去的usb轉串口線纜,使用的芯片是PL2303。
但是正如上面顯示,ttyUSB0這個設備是root所有的,所以,我們以普通用戶身份打開minicom是沒法訪問該文件的。
配置minicom的參數
運行sudo minicom -s
便進入了minicom的配置界面,使用上下鍵選擇Serial port setup
,回車。此時光標在“change which setting”后面停留,它的上面有如下菜單:
Serial port setup [Enter]
+-------------------------------------------------------------+
| A - Serial Device : /dev/ttyUSB0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program -: |
| E - Bps/Par/Bits : 9600 8N1 |
| F - Hardware Flow Control : No |
| G - Software Flow Control : No |
| |
| Change which setting? |
+-------------------------------------------------------------+
我們只需輸入上面對應的字母,就可以進如相應的菜單進行設置。設置完成,回車,光標會回到“change which setting”后面,如此重復。完成按回車返回主菜單即可。
返回主菜單后,選擇“Save setup as df1”,將其保存為默認設置,然后選擇 Exit退出。需退出后重新打開minicom,軟件才會使用上述參數進行初始化。
注意:如果沒有使用USB轉串口,而是直接使用串口,那么Serial Device要配置為/dev/ttyS0。
如果上面設置順利,打開minicom
# minicom
重新給設備上電后,此時,窗口里就有信息打印出來了。
minicom基本操作如下:
1)需使用Ctrl+a 進入設置狀態
2)按z進入設置菜單
(1)O鍵:打開配置選項;
(2)W鍵:自動卷屏。當顯示的內容超過一行之後,自動將後面的內容換行。這個功能在查看內核的啓動信息時很有用。
(3)C鍵:清除屏幕的顯示內容;
(4)B鍵:瀏覽minicom的歷史顯示;
(5)X鍵:退出minicom,會提示確認退出。
配置選項目錄
Ctrl + A --> O
+-----[configuration]------+
| Filenames and paths |
| File transfer protocols -|
| Serial port setup |
| Modem and dialing |
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
+--------------------------+
選擇"Filenames and paths"
+-----------------------------------------------------------------------+
| A - Download directory : /home/wonux |
| B - Upload directory : /tmp |
| C - Script directory : /root/minicom |
| D - Script program : runscript or /bin/bash |
| E - Kermit program : |
| F - Logging options |
| |
| Change which setting? |
+-----------------------------------------------------------------------+
- C - Script文件的存放位置:
<C-a> g
運行腳本時的路徑 。 - D - 選擇腳本程序:
默認runscript
,也可以選擇bash
腳本格式。
minicom使用
命令行啟動minicom的參數
更多的參數,參見"man minicom"的輸出。
-s
設置。 root 使用此選項在/etc/minirc.dfl中編輯系統范圍的缺省值。使用此參數后,minicom 將不進行初始化,而是直接進入配置菜單。如果因為你的系統被改變,或者第一次運行minicom時,minicom不能啟動,這個參數就會很有用。對于多數系統,已經內定了比較合適的缺省值。
-o
不進行初始化。minicom 將跳過初始化代碼。如果你未復位(reset)就退出了minicom,又想重啟一次會話(session),那么用這個選項就比較爽(不會再有錯誤提示:modem is locked ---- 注)。但是也有潛在的危險:由于未對lock文件等進行檢查,因此一般用戶可能會與uucp之類的東東發生沖突......也許以后這個參數會被去掉。現在姑且假定,使用modem的用戶對自己的行為足夠負責。
-m
用Meta或Alt鍵重載命令鍵。在1.80版中這是缺省值,也可以在minicom 菜單中配置這個選項。不過若你一直使用不同的終端,其中有些沒有Meta或Alt鍵,那么方便的做法還是把缺省的命令鍵設置為Ctrl-A,當你有了支持 Meta或Alt鍵的鍵盤時再使用此選項。Minicom假定你的Meta鍵發送ESC前綴,而不是設置字符最高位的那一種(見下)。
-M
跟“-m”一樣,但是假定你的Meta鍵設置字符高端的第八位(發送128+字符代碼)。
-z
使用終端狀態行。僅當終端支持,并且在其termcap或terminfo數據庫入口中有相關信息時才可用。
-l
逐字翻譯 高位被置位的字符。使用此標志, minicom將不再嘗試將IBM行字符翻譯為ASCII碼,而是將其直接傳送。許多PC-Unix克隆不經翻譯也能正確顯示它們(Linux使用專門的模式:Coherent和Sco)。
-w
在啟動的時候就自動換行,這樣啟動之后不用運行<C-a> w進行設置了,詳細參考后面。
-a
特性使用。 有些終端,特別是televideo終端, 有個很討厭的特性處理(串行而非并行)。minicom缺省使用‘-a on’,但若你在用這樣的終端,你就可以(必須!)加上選項‘-a off’。尾字‘on’或‘off’需要加上。
-t
終端類型。使用此標志, 你可以重載環境變量TERM, 這在環境變量MINICOM 中使用很方便; 你可以創建一個專門的 termcap 入口以備minicom 在控制臺上使用,它將屏幕初始化為raw模式, 這樣,連同‘-l’標志一起,就可以不經翻譯而顯示IBM行字符。
-c
顏色使用。些終端(如Linux控制臺)支持標準ANSI轉義序列色彩。由于termcap顯然沒有對于色彩的支持,因而minicom 硬性內置了這些轉義序列的代碼。所以此選項缺省為off。使用‘-c on’可以打開此項。把這個標志,還有‘-m’放入MINICOM環境變量中是個不錯的選擇。
-S
腳本。 啟動時執行給定名字的腳本。到目前為止,還不支持將用戶名和口令傳送給啟動腳本。如果你還使用了‘-d’選項,以在啟動時開始撥號,此腳本將在撥號之前運行,撥號項目入口由‘-d’指明。
-p
要使用的偽終端。 它超載配置文件中定義的終端端口,但僅當其為偽tty設備。提供的文件名必須采用這樣的形式:(/dev/)tty[p-z][0-f]
-C
文件名。 啟動時打開捕獲輸出到文件。
-8
不經修改地傳送8位字符。“連續”意指未對地點/特性進行真正改變,就不插入地點/特性控制序列。此模式用于顯示8位多字節字符,比如日本字(TMD!應該是中國字!!)。不是8位字符的語言都需要(例如顯示芬蘭文字就不需要這個)。
命令行參數使用舉例
-
-w
: 啟動minicom的時候,開啟自動換行:
如果不加這個項,那么在minicom和pc交互的時候中鍵入命令超過一行時候會被截斷,(這時候可以通過<C-a> w
來開和關切換截斷行功能).
-
-c on
: 啟動minicom的時候,顯示顏色:
這樣,啟動之后我們會發現顯示的內容不是黑白的了。
-
-C <filename>
: 啟動minicom的時候,自動創建日志捕捉文件<filename>:
這樣,啟動之后,所在minicom的輸出都會在<filename>中保留一份,如果原來文件存在,則追加,不存在則創建一個。
-
-m
: 啟動minicom的時候,將命令鍵修改成Meta鍵(<C-a>變成[Alt]或者[ESC]等):
這樣,我們可以取代用<C-a> *
發送命令的方式,將<C-a>
替換成[Alt]
或者[ESC]
.
-
-S <filename>
: 啟動minicom的時候,指定運行的腳本:
這里,<filename>是你的腳本文件的名字,應該指定絕對路徑,否則就會在你啟動minicom的路徑下尋找。
minicom的交互使用
Minicom是基于窗口的。要彈出所需功能的窗口,可按下Ctrl-A
(以下使用C-A來表示Ctrl-A),然后再按各功能鍵(a-z或A-Z)。先按C-A,再按'z',將出現一個幫助窗口,提供了所有命令的簡述。配置 minicom(-s 選項,或者C-A、O)時,可以改變這個轉義鍵,不過現在我們還是用Ctrl-A吧。
這里,只給出很少的命令,更多的交互命令參見"<C-a> z"的幫助輸出。
- ==查看幫助==:
<C-a> z
.
這樣會顯示所命令列表,便于查找。 - ==配置選項==:
<C-a> o.
- 回到shell:
<C-a> j
.
這樣minicom會在后臺stop,直到fg將它調到前臺。 - ==開/關捕捉minicom輸出到文件==:
<C-a> l
.
這樣會打開/關閉捕捉輸出功能,捕捉的輸出會存放在一個你選擇的文件中。 - ==運行腳本==:
<C-a> g
: - 退出minicom:
<C-a> x
.
這樣會退出minicom.
常用配置總結:
minicom -s
或啟動minicom之后運行<C-a> o
來進行配置。
- 選擇
Serial port setup
配置其中的如下配置項:
A - Serial Device : /dev/ttyUSB0
E - Bps/Par/Bits : 115200 8N1
F - Hardware Flow Control : No
G - Software Flow Control : No
- 選擇
Filenames and paths
配置其中的如下配置項:
C - Script directory : /root/minicom
D - Script program : /bin/bash
C:腳本文件的存放位置: <C-a> g
運行腳本時的路徑 。
D:選擇腳本程序: 默認runscript
,也可以選擇bash
腳本格式。
關于minicom的腳本:
可以參考man手冊man runscript
.交互命令中可以運行"<C-a> G
"來運行腳本。
- 注釋是'#'開始的。
- send命令中的字符串,有\c就不會發送默認的\r了。例:send "ls \c"就不會自動回車,這里'\c'也可以在前面。
目前發現,腳本功能比較弱。在minicom原代碼中有簡單的例子:scriptdemo和unixlogin,可以直接在linux運行runscript. - 可以指定minicom的腳本運行程序:
作為腳本解釋器的程序。缺省是“runscript”,也可用其它的東東(如: /bin/sh 或 "expect",這樣就可以用shell或者其他的腳本了_)。Stdin和Stdout連接到modem,Stderr連接到屏幕。
參考資料:
- http://blog.csdn.net/sikinzen/archive/2010/04/05/5451758.aspx
- minicom手冊
- 其他網上收集的資料