在ubuntu下利用minicom實現串口通信


    windos有串口調試助手,linux下也有這樣的工具——minicom。不過,minicom和linux下的許多工具都一樣,也是命令行模式,沒有圖形化界面供我們享受。作為一款串口調試工具,雖然難看但總比沒有的好。

    為什么linux下的工具都這么的簡朴,沒什么華麗的界面,好像回到了解放前。一種可能的原因是linux這種非商業性質的軟件,都是有自由軟件愛好者通過其業余時間創作的,沒有時間搞用戶體驗度調查,也沒有精力搞優美的圖形界面。而且,linux是一種面向專業用戶的系統,而非windows那種傻瓜式系統,工具軟件實現功能就行了,沒必要太過華麗。甚至,我認為簡陋的工具軟件可以讓程序開發人員更能深刻領會軟件的機理,而完美包裝的軟件卻屏蔽了技術的細節,很難提高自我。所以,忍受linux下的痛苦軟件,才能獲得開心知識。

    回到正題,下面來一步一步實現minicom的安裝。首先聲明本文涉及的平台,(虛擬機 VMware 6.5 ) || (linux Ubuntu12.0.4) || (usb轉串口),相信廣大開發者很大一部分用的都是筆記本,自然選擇的也是USB轉串口。

安裝minicom

一條命令就搞定了minicom的安裝

#sudo apt-get install minicom  

在linux下實現串口通信

    有兩者方法可以實現串口通信,依次展開。

方法1--以硬串口掛載到linux系統中 

1、查看主機usb轉串口的串口號

    我這里是COM1

2、為虛擬機Ubuntu添加一個硬串口

    這里選擇和物理主機一樣的虛擬串口COM1

    配置完成后的效果

    啟動虛擬機后,可以通過VM -> Removable Devices 查看當前主機什么可移動硬件連接在虛擬機上。方式一,必須保證Serial port(Using port COM1)連接在虛擬機上,而Prolific USB-Serial Controller與虛擬機是斷開的。

    需要說明的是,前邊打鈎的代表是連在虛擬機上的,沒打勾代表連在主機上。一個硬件或者連接在主機上,或者連接在虛擬機上,只能掛載在一個操作系統下。當一個硬件需要連接到虛擬機操作系統上,比如說U盤掛載到Ubuntu上,發生的動作時:先從主機上卸載,然后掛載到Ubutu上。

    從下邊的圖,也可以查看虛擬機當前擁有的硬件有哪些。色彩比較重的代表連接在虛擬機上,相反則連接在主機上。

3、配置minicom

#minicom -s

     在終端下輸入minicom的配置命令,就可以打開配置菜單,選擇第三項串口配置(Serial port setup )

    這里重要的是以下幾個選項:

A               設置使用哪個串口設備(因為一台電腦上的串口可能不止一個),注意這里輸入的是ttyS0

E               設置波特率、數據位、奇偶校驗位、停止位,這里依次是115200,8,N,1

F               這個選項的含義,在下不知,但是網上眾多人都說此項必須選成no,否則可能不能通信

    對於方法一的A選項(設置使用哪個串口設備),可以從/dev目錄中看我們用的是哪個設備

    配置完成后,將其保存成默認配置(Save setup as dfl),然后退出(Exit from Minicom),終端下輸入#minicom命令以打開minicom軟件。

展示效果圖

方法2--以U轉串方式掛載到linux系統中

1、檢查是否支持這種方法

    首先看自己的Ubuntu 版本是否自帶了U轉串驅動,倘若沒有,這種方法對你的系統還不適用。執行命令#lsmod | grep usbserial,如果能打印出上邊的信息,證明此版本的Ubuntu操作系統自帶有U轉串驅動(U轉

串芯片是PL2303)。

 

    2、配置虛擬機

    對於方法二,沒必要添加串口,如下所示的硬件構成(默認配置)已經夠了

    啟動虛擬機,確保以下硬件連接方式,Prolific USB-Serial Controller是連接在虛擬上的。倘若你的虛擬機上邊添加了一個串口,那么確保這個串口不要啟動,即前邊沒有打鈎。

    對應的在虛擬機的右下角,可以看到Prolific USB-Serial Controller圖標是高亮的,而Serial port(Using port COM1)是淺色的(倘若你的虛擬機上添加有串口)。

3、配置minicom

    在終端上輸入#minicom -s命令,選擇Serial port setup,打開如下配置界面。這里的E、F選項與方法一一樣,需要注意的是:A選項輸入的是ttyUSB0。倘若不是這個配置,有可能不能成功通信。

    以默認配置方式保存,然后退出。輸入#minicom命令,啟動軟件。效果圖如下。

兩種方法對比--ttyUSB0對應的是什么

    倘若拔掉U轉串,或者Prolific USB-Serial Controller與虛擬機斷開連接,在Ubuntu的/dev目錄中是沒有ttyUSB0的。

    而且,輸入命令#lsusb也是看不到U轉串對應的信息。

    倘若插上U轉串,並且確保Prolific USB-Serial Controller與虛擬機斷是連接的,這個時候的效果與之前的相反。

 

結論

    ttyUSB0就是U轉串在Ubuntu操作系統下對應的設備文件。事實上,方法一把U轉串當做是一個實實在在的串口(COM1)掛載在Ubuntu上,在/dev目錄下是找不到ttyUSB0,與之對應的設備文件是ttyS0。

    而且,我猜測方法一是不需要Ubuntu的串口驅動的。以虛擬機上Ubuntu的眼光看,U轉串是一個實實在在的串口,而非一個虛擬的串口。

其他

    短接串口的2腳和3腳,可以測試串口是否正常工作。正常工作的效果是鍵盤上輸入什么,串口調試助手顯示什么。 

 

 串口接口定義

1   DCD   Carrier Detect
2   RXD   Receive Data
3   TXD   Transmit Data
4   DTR   Data Terminal Ready
5   GND   System Ground
6   DSR   Data Set Ready
7   RTS   Request to Send
8   CTS   Clear to Send
9   RI    Ring Indicator

 

參考博客:ubuntu下minicom的安裝及使用


免責聲明!

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



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