linux下的串口與windows有一些區別,下面將介紹一下linux下串口通信管理
查看是否支持USB串口:
#lsmod | grep usbserial
如果沒有信息:sudo apt-get install setserial
插上USB轉串口,在終端輸入命令
#dmesg | grep ttyUSB0
如果出現連接成功信息,則說明系統已經識別該設備
一.找到自己的串口設備
查找自己的開發板與電腦的連接的COM口方法
Windows:設備管理器
linux:
(1)dmesg #查看帶有"SerialNumber"(串口)的數字,這里串口號是0

(2)dmesg | grep ttyUSB

(3)ls -l /dev/ttyUSB*

二.串口通信控制
c-kermit
kermit是一款集成了串口通信和網絡通信的工具
相比Minicom而言,u-Boot開發者推薦使用串口通信軟件ckermit
1)安裝kermit: $ sudo apt-get install ckermit
或者源碼安裝: 到http://www.columbia.edu/kermit/ck80.html#download下載C-Kermit最新版本
2)在$HOME主目錄下,建立.kermrc配置文件,vi ~/.kermrc:
set line /dev/ttyUSB0 //串口名,要確認當前用戶有權限對其操作 set speed 115200 //波特率 set carrier-watch off set handshake none set flow-control none robust set file type bin set file name lit set rec pack 1000 set send pack 1000 //這里可以改大一點,方便下載內核 set window 5
3)使用
使用 kermit –c 來連接串口,如果出現亂碼,請關閉終端多試幾次,總會成功的-:) 回到kermit:Ctrl + \ ,再按c 跳回串口控:輸入c,即connect命令 進入命令模式: $kermit 輸入:connect連接 進入非命令模式:$kermit -c #相當於在命令模式下面運行了connect或者c *進入命令模式,步驟如下: 1)輸入"[Ctrl]\". 2)輸入"c". 這樣進入kermit的命令模式可以進行各種命令(支持TAB補全),例如HELP可以查看幫助,輸入"?"列出所有命令。 *從命令模式退回com終端: 輸入"connect". 或輸入"c". 這樣又切換會了串口界面(例如在uboot下面)。 在命令模式下常用的一些命令:ls cd pwd ... 發送文件 kermit中輸入connect后,跳到u-boot串口界面。 輸入loadb 0xAddress 回車 按下 ctrl + \ ,再按c,切換到kermit。 輸入命令:send /home/zImage kermit開始傳送數據了,並可以看到傳送進度,發送完后,輸入c,再回到u-boot界面,然后,再輸入: go 0xAddress 內核開始運行. *一個簡單的完整例子: 啟動板子uboot之后,我想傳一個文件/root/test.sh到地址0xc0008000 步驟如下: 1)$kermit -c #連接到串口上面了。 2)輸入"loadb 0xc0008000" 3)輸入"[Ctrl]\" 4)輸入"c" 這樣進入命令模式. 5)輸入"send /root/test.sh" 6)輸入"connect". 這樣就傳完了。ckermit好像只支持kermit協議。
*傳輸文件file到板子的flash上面:
輸入"send file". 這里,在命令行下的發送命令就是send。如果之前在Uboot下使用了loadb 0xc0008000進入的命令模式,那么發送的文件將會被放在了這個地址上面。 退出串口程序: 命令行下面輸入"exit"
minicom
minicom是linux下串口通信的軟件 1、確認對串口有讀/寫的權限:ls -l /dev/ttyUSB0(串口設備) 2、進行配置串口運行: # sudo minicom -s 1)Serial port setup: 此時所示光標在"Change which setting"上,鍵入"A", 此時光標移到第A項對應處,修改串口號注意:使用USB轉串口,那么串口COM1對應ttyUSB0, COM2對應ttyUSB1; 如果沒有使用USB轉串口,而是直接使用串口,那么串口COM1對應ttyS0, COM2對應ttyS1。 2)配置完串口設備后,按Enter鍵,回到選擇界面,再輸入E 配置波特率,按默認配置即可 115200 8N1 (波特率:115200,數據位:8,奇偶校驗位:N 無,停止位:1)。 3)配置完波特率,按Enter鍵,再輸入F 配置硬件流控,設置成"NO" 4)配置軟件流控,也選擇NO。
都配置完后,按下Enter鍵返回上一界面,選擇save setup as dfl(即將其保存位默認配置) 再選擇Exit from Minicom,關閉minicom。 使用 sudo minicom -c on #進入minicom的串口終端顯示界面(-c on 表示支持彩色字符顯示) 在控制台下通過組合鍵Ctrl+A Z可以進入minicom菜單。
組合鍵的用法:先按Ctrl+A組合鍵,然后松開這兩個鍵,再按Z鍵。另外還有一些常用的組合鍵。 (1)S鍵:發送文件到目標系統中; (2)W鍵:自動卷屏。當顯示的內容超過一行之后,自動將后面的內容換行。這個功能在查看內核的啟動信息時很有用。 (3)C鍵:清除屏幕的顯示內容; (4)B鍵:瀏覽minicom的歷史顯示; (5)X鍵:退出mInicom,會提示確認退出。 下次在輸入sudo minicon 即可直接進入。 命令minicom是進入串口超級終端畫面,而minicom -s為配置minicom。 說明/dev/ttyS0 對應為串口0 為你連接開發板的端口。 注意:非正常關閉minicom,會在/var/lock下創建幾個文件LCK*,這幾個文件阻止了minicom的運行,將它們刪除后即可恢復 查看串口是否可用,可以對串口發送數據比如對com1口,echo "test" > /dev/ttyS0 在通過串口用xmodem協議燒寫內核時會提示沒有xmodem協議,所以還必須安裝軟件包:lrzsz sudo apt-get install lrzsz 這時候就可以正常地用minicom通過串口燒寫內核了。
注意:非正常關閉minicom,會在/var/lock下創建幾個文件LCK*,這幾個文件阻止了minicom的運行,將它們刪除后即可恢復
查看串口是否可用,可以對串口發送數據比如對com1口,echo "test" > /dev/ttyS0 查看串口名稱使用 ls -l /dev/ttyS* 一般情況下串口的名稱全部在dev下面,如果沒有外插串口卡的話默認是dev下的ttyS* 一般ttyS0對應com1,ttyS1對應com2 查看串口驅動:cat /proc/tty/drivers/serial 查看串口設備:dmesg | grep ttyS*
圖形化工具:
1.從 http://code.google.com/p/xgcom/ 下載xgcom源代碼。最新版本為 xgcom-0.04.2.tgz。 解壓 tar xvzf xgcom-0.04.2.tgz /usr/local/src
2.安裝所需的庫 sudo apt-get install automake sudo apt-get install libglib2.0-dev sudo apt-get install libvte-dev sudo apt-get install libgtk2.0-dev
3.編譯: cd xgcom-0.04.2
./autogen.sh
make
sudo make install
4.which xgcom #查看安裝位置
5.sudo xgcom #運行
相關鏈接:
http://blog.csdn.net/xian_2015/article/details/49443483 ckermit
http://5deweb.blog.163.com/blog/static/4902191120138601058790/
http://blog.chinaunix.net/uid-25562715-id-1990181.html
http://blog.chinaunix.net/uid-28751779-id-5097822.html linux串口通信知識及串口編程

注意:使用USB轉串口,那么串口COM1對應ttyUSB0, COM2對應ttyUSB1;
如果沒有使用USB轉串口,而是直接使用串口,那么串口COM1對應ttyS0, COM2對應ttyS1。

