<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于A(yíng)DS的S3C2410實(shí)現嵌入式串口通信

基于A(yíng)DS的S3C2410實(shí)現嵌入式串口通信

作者: 時(shí)間:2011-09-21 來(lái)源:網(wǎng)絡(luò ) 收藏
軟件UART的意義

本文引用地址:http://dyxdggzs.com/article/155708.htm

  如今,可提供功能完善的硬件的微控制器比比皆是,那么我們?yōu)槭裁催€要費力地用微控制器的端口管腳來(lái)軟件UART呢?主要有以下幾個(gè)原因:

  首先,盡管確實(shí)有許多微控制器都包含了硬件UART,但仍有許多沒(méi)有包含這種接口。在系統設計中,選擇微控制器時(shí),可能很難找到一款各方面都很理想的產(chǎn)品。例如,電壓范圍合適的微控制器可能內部存儲器不夠大,而存儲器大小足夠的可能又沒(méi)有足夠的端口管腳,無(wú)法滿(mǎn)足設計需求。因此,通過(guò)軟件方式某些系統需要的外設接口,從而彌補一款微控制器性能上的缺陷,就能增加可供設計選擇的微控制器的數量和種類(lèi),從而增大設計的靈活性。

  第二,即便一款微控制器包含了一個(gè)功能完善的硬件UART,由于某種原因,這對即將進(jìn)行的設計來(lái)說(shuō)可能仍然不夠。例如,可能是微控制器需要與之的外設所用的協(xié)議與協(xié)議稍有不同,也可能是硬件UART所提供的位數、奇偶校驗功能或輸入和輸出緩存無(wú)法完全滿(mǎn)足應用的要求。這時(shí),通過(guò)構建一個(gè)軟件UART接口,我們在定義UART的功能和協(xié)議的細節上就更靈活。

  第三,一款微控制器的硬件UART也許能夠很好地滿(mǎn)足應用的需求,但只是數量不夠。例如,微控制器包含兩個(gè)UART,而設計中的應用卻需要三個(gè)。此時(shí),我們不必僅僅為了增加串口的數量就另外增加一塊新的芯片,而只需增加一個(gè)與該微控制器上現有的UART具備同樣功能和特性的軟件UART。

  UART軟件部分的

  絕大多數的Linux軟件開(kāi)發(fā)都是以native方式進(jìn)行的,即本機(HOST)開(kāi)發(fā)、調試、本機運行的方式,但是由于在目標機上沒(méi)有足夠的資源來(lái)滿(mǎn)足系統的開(kāi)發(fā),所以這種方式不適合于系統的軟件開(kāi)發(fā)。通常系統軟件開(kāi)發(fā)采用交叉編譯調試的方法。交叉編譯的主要特征是某機器中執行的程序代碼不是由本機編譯生成,而是由另外一臺機器編譯生成。

  串口的基本任務(wù)有:實(shí)現數據格式化、進(jìn)行串/并轉換、控制數據傳輸速率、進(jìn)行錯誤檢測和進(jìn)行TTl與EIA電平轉換。串口分為同步通信和異步通信兩種類(lèi)型,本文將用到異步串行I/0。

  由于Linux系統將所有的設備都看成文件,所以訪(fǎng)問(wèn)串口時(shí),認為串口是一個(gè)文件,我們可以使用文件系統控制函數實(shí)現基本的串口操作,比如open()函數用來(lái)打開(kāi)串口,read()和write()函數用來(lái)讀寫(xiě)串口,在傳輸數據完成后可以用close()函數關(guān)閉串口。

  構造了一個(gè)嵌入式版本的Linux文件系統,它使得內核在系統盡量精簡(jiǎn)的情況下能夠運行起來(lái),并滿(mǎn)足產(chǎn)品和系統各方面的要求。其中,為文件系統配置用戶(hù)和屬組以達到一定的安全性更是系統的一大特色。另外,在這個(gè)嵌入式文件系統中,引入了VFS的支持,雖然犧牲了一些空間,但是大大方便了今后各種物理文件系統的動(dòng)態(tài)加載。Linux的文件系統事實(shí)上非常的龐大,構造一個(gè)嵌入式的Linux文件系統是一個(gè)很復雜的過(guò)程

  串口的基本設置

  串口最基本的設置有波特率設置、檢驗位和停止位的設置。串口的設置主要是設置struct termios結構體的各成員值:

  

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>