linux下串口通信與管理


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串口通信知識及串口編程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM