<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è) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM920T的紅外通信系統的設計

基于A(yíng)RM920T的紅外通信系統的設計

作者: 時(shí)間:2017-06-04 來(lái)源:網(wǎng)絡(luò ) 收藏

目前,嵌入式系統已經(jīng)進(jìn)入了蓬勃發(fā)展的時(shí)代,越來(lái)越多的帶功能的嵌入式設備走進(jìn)人們的生活當中。是利用紅外光進(jìn)行通信的一種空間通信方式。標準IrDA(Infrared Data Association)是目前IT和通信業(yè)普遍支持的近距離無(wú)線(xiàn)數據傳輸規范。盡管通信距離只有幾米,卻有很多優(yōu)勢:紅外連接比有線(xiàn)連接更安全可靠,并且避免了因線(xiàn)纜和連接器磨損和斷裂造成的檢修;它的小型化和低成本,很適合應用在便攜式產(chǎn)品中;并且紅外通信成本低廉,跨平臺適應性好,傳輸速率高,適宜用于低成本、跨平臺、點(diǎn)對點(diǎn)高速數據連接,尤其適用于嵌入式系統。

1 IrDA標準簡(jiǎn)介

紅外標準IrDA的章程是建立通用的、低功率電源的、半雙工紅外串行數據互聯(lián)標準、支持近距離、點(diǎn)到點(diǎn)、設備適應性廣的用戶(hù)模式。建立該標準是在各種設備之間較容易地進(jìn)行低成本紅外通信的關(guān)鍵。

IrDA就是一個(gè)點(diǎn)對點(diǎn)的協(xié)議,用在近距離進(jìn)行異步串行傳輸。IrDA規范1.0定義了數據傳輸率最高到115.2 kb/s的紅外通信;規范1.1將數據傳輸率提高到4 Mb/s,并保持了對版本1.0產(chǎn)品的兼容; 規范1.2定義了最高速度為 115.2 kb/s下的低功耗選擇;規范1.3將這種低功耗選擇功能推廣到1.152 Mb/s和4 Mb/s[1],規范1.4廢棄并替代了規范1.3,定義了最高速度為16 Mb/s下的低功耗選擇[2]。

2 紅外通信系統的總體方案

基于的紅外通信系統由軟、硬件兩部分組成。硬件部分包括基于內核的微處理器S3C2440A及存儲器等硬件開(kāi)發(fā)平臺和基于紅外收發(fā)器ZHX1403的紅外通信模塊兩部分;軟件部分包括紅外通信模塊驅動(dòng)程序、紅外通信應用程序和操作系統三部分。

3 紅外通信系統的硬件設計

3.1 硬件開(kāi)發(fā)平臺

嵌入式系統硬件開(kāi)發(fā)平臺采用S3C2440A為控制器。S3C2440A是32 bit RISC處理器,內嵌核。它的低功耗,簡(jiǎn)潔,美觀(guān)和全靜態(tài)設計特別適用于對成本和功耗敏感的應用場(chǎng)合。S3C2440A提供手持設備和低功率的一般應用的方案,以及高性能的微控制器解決方案[3]。

S3C2440A有如下特點(diǎn):(1)最高可達400 MHz的主頻;(2)內部集成LCD控制器(高達4 K彩色STN和256 K色TFT)液晶顯示專(zhuān)用的DMA;(3)3路異步串行通信接口(支持IrDA1.0,64 B的FIFO發(fā)送和64 B的FIFO接收);(4)IIS音頻編解碼器接口;(5)內置看門(mén)狗定時(shí)電路及實(shí)時(shí)時(shí)鐘(RTC);(6)內部集成兩路USB主控制器和1路USB設備控制器(版本1.1);(7)4路PWM定時(shí)器,1通道內部定時(shí)器/看門(mén)狗定時(shí)器;(8)130個(gè)通用I/O端口,24通道外部中斷源;(9)8路10 bit ADC和觸摸屏接口;(10)增強型ARM架構的MMU支持WinCE、操作系統。

3.2 紅外通信模塊

ZHX1403是ZiLOG公司出品的一款專(zhuān)用于PDA、網(wǎng)絡(luò )應用、醫療電子、手持式設備的紅外收發(fā)器,且與IrDA1.4協(xié)議標準兼容[4]。它支持所有紅外通信協(xié)議支持的SIR紅外傳輸速率,采用半雙工串行傳輸方式,并具有Always On技術(shù),使得長(cháng)時(shí)間的紅外功能開(kāi)啟成為可能,為紅外設備的應用增加了更多的可能性。它具有極小巧的外型尺寸(7.3 mm×2.8 mm×1.9 mm),應用電路的空間也是非常小,只需要外接兩個(gè)外部元件,與其他支持IrDA標準的收發(fā)器間的典型數據連接距離可達1 m。

ZHX1403有7個(gè)引腳,依次是NC、Vcc、GND、SD、RXD、TXD、LEDA。ZHX1403與S3C2440 處理器連接電路如圖1所示。LEDA通過(guò)一個(gè)外接的電阻接到Vcc上,給紅外管提供工作電流。ZHX1403接收數據輸出端口TXD與S3C2440A的GPH4/TXD1連接,ZHX1403發(fā)送數據輸入端口RXD與S3C2440A的GPH5/RXD1。掉電模式使能控制端SD與S3C2440A的GPB0/TOUT0連接,用來(lái)將內部的電路控制在關(guān)閉模式。ZHX1403把接收到的數據通過(guò)GPH5/RXD1傳送給S3C2440A,S3C2440A把預發(fā)送的數據通過(guò)GPH4/TXD1發(fā)送給ZHX1403的TXD端口,再通過(guò)紅外收發(fā)器發(fā)射管發(fā)送。


4 紅外通信系統的軟件設計

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

4.1 紅外通信協(xié)議的實(shí)現

紅外數據通信標準包括基本協(xié)議和特定應用領(lǐng)域的協(xié)議兩類(lèi)。類(lèi)似于TCP-IP協(xié)議,它是一個(gè)層式結構,其結構形成一個(gè)棧,如表1所示[5]。

其中有3個(gè)基本的規范和協(xié)議,即為必要協(xié)議:(1)紅外物理層協(xié)議 IrPHY(Infrared Physical Layer);(2)紅外連接訪(fǎng)問(wèn)協(xié)議層 IrLAP(Infrared Link Access Protocol);(3)紅外連接管理協(xié)議層 IrLMP(Infrared Link Management Protocol)。以上每一層的功能是為上一層提供特定的服務(wù)。其中物理層協(xié)議制定了紅外通信硬件設計上的目標和要求,處于最底層。其他兩層屬于軟件協(xié)議的范圍,負責對鏈接進(jìn)行設置、管理和維護。

在IrLMP協(xié)議上層的協(xié)議都屬于可選的紅外數據通信協(xié)議,可用于特定應用領(lǐng)域的規范和協(xié)議:(1)流傳輸協(xié)議(TinyTP);(2)對象交換協(xié)議(IrOBEX);(3)模擬串口層協(xié)議(IrCOMM);(4)局域網(wǎng)訪(fǎng)問(wèn)協(xié)議(IrLAN);(5)信息訪(fǎng)問(wèn)服務(wù)協(xié)議(IAS)。

驅動(dòng)部分是協(xié)議棧的最主要部分,包括了IrLAP、IrLMP、TinyTP、IAS、IrOBEX、IrCOMM和IrLAN等協(xié)議。IrLAP、IrLMP是兩個(gè)必選的軟件協(xié)議。物理層上的第一層為IrLAP,它的功能是支持鏈路初始化、設備地址目錄、解決沖突、創(chuàng )建連接、數據交換、接觸連接和鏈路關(guān)閉,并且規定了紅外數據包的幀結構及紅外通信的錯誤檢測方法。IrLMP提供建立在IrLAP連接上的多路復用及數據鏈路管理。TinyTP對數據傳輸進(jìn)行流控制。IAS提供一個(gè)設備所擁有的相關(guān)服務(wù)檢索表。IrOBEX提供文件和其他數據對象的交換服務(wù)。IrCOMM使當前的應用能夠在IrDA平臺上使用串、并口通信,而不必進(jìn)行轉換。IrLAN能為筆記本電腦和其他設備開(kāi)啟IR局域網(wǎng)通道[6]。

整個(gè)紅外協(xié)議棧比較龐大,在嵌入式系統中,由于微處理器的速度和存儲器容量的限制,沒(méi)有必要實(shí)現整個(gè)紅外協(xié)議棧,可以將協(xié)議棧簡(jiǎn)化,根據實(shí)際需求,有選擇地實(shí)現自己需要的協(xié)議和功能[7]。

4.2 紅外通信模塊驅動(dòng)程序的設計

(1)初始化

IrDA不是單純的串口物理通信規范,而是一種網(wǎng)絡(luò )傳輸控制標準。在Linux操作系統下,紅外通信是作為一類(lèi)特殊的網(wǎng)絡(luò )設備來(lái)支持的。Linux必須按網(wǎng)絡(luò )設備驅動(dòng)方法來(lái)組織紅外數據的網(wǎng)絡(luò )傳輸。在linux/net/irda中有紅外設備的代碼??梢杂孟旅娴暮瘮党跏蓟粋€(gè)紅外設備:
struct net_device *alloc_irdadev(int sizeof_priv)
{
return alloc_netdev(sizeof_priv,”irda%d”,irda_device_
setup);
}
當內核啟動(dòng)或加載網(wǎng)絡(luò )驅動(dòng)模塊的時(shí)候,就會(huì )調用初始化過(guò)程。首先檢測網(wǎng)絡(luò )物理設備是否存在,通過(guò)檢測系統中的紅外串行接口完成,然后初始化與紅外相關(guān)的寄存器,隨后構造設備的device數據結構,用檢測到的數值對device中的變量初始化。最后向Linux內核中注冊該設備并申請內存空間。

(2)數據包的發(fā)送和接收

數據包的發(fā)送和接收是實(shí)現操作系統下紅外驅動(dòng)程序中兩個(gè)最關(guān)鍵的過(guò)程[8]。首先在網(wǎng)絡(luò )設備驅動(dòng)加載時(shí),通過(guò)device域中的init函數指針調用紅外設備的初始化函數對設備進(jìn)行初始化。初始化成功后可以通過(guò)調用紅外設備的打開(kāi)函數打開(kāi)設備,申請紅外中斷,啟動(dòng)隊列。數據包的發(fā)送通過(guò)調用s3c2440_irda_hard_xmit函數,禁止接收,關(guān)閉中斷,將上層交付的數據幀放入到低層驅動(dòng)的緩沖區中。進(jìn)入發(fā)送模式,允許發(fā)送中斷,在中斷服務(wù)時(shí)把底層驅動(dòng)緩沖區中的數據發(fā)送到紅外接口。

數據包的接收通過(guò)中斷來(lái)完成。當有數據到達時(shí),就會(huì )產(chǎn)生中斷信號,紅外設備驅動(dòng)功能層就調用接收中斷處理程序,讀取URXH(串口接收緩沖寄存器)中的數據。

4.3 紅外通信程序設計

應用層的網(wǎng)絡(luò )編程一般利用套接字建立雙方的虛擬連接。紅外通信的Socket稱(chēng)為紅外套接字(IrSock)。在Linux中,每一種協(xié)議都有自己的網(wǎng)絡(luò )地址數據結構,均以sockaddr_開(kāi)頭。Linux內核在af_irda.c文件中實(shí)現了IrDA套接字。定義紅外套接字如下:

struct sockaddr_irda{
sa_family_t sir_family;//協(xié)議類(lèi)型,一般是AF_IRDA
_u8 sir_lsap_sel;
_u32 sir_addr;
char sir_name[25];
}

分配完套接字后,用bind綁定地址,用listen建立偵聽(tīng),等待接收客戶(hù)連接。使用send和recv與客戶(hù)端通信,最后使用closesocket關(guān)閉連接。

本文在以基于A(yíng)RM920T內核的微處理器S3C2440A為核心的嵌入式開(kāi)發(fā)平臺上詳細介紹了嵌入式Linux操作系統下紅外通信系統的設計和實(shí)現過(guò)程。通過(guò)對照硬件規范,可以實(shí)現嵌入式Linux操作系統下將紅外協(xié)議移植到特定的嵌入式系統中。在嵌入式Linux操作系統下紅外通信系統的開(kāi)發(fā)對今后的嵌入式系統的應用研究具有較強的實(shí)用性,使紅外技術(shù)能在嵌入式系統中得到廣泛的應用。



關(guān)鍵詞: 紅外通信 嵌入式Linux ARM920T

評論


相關(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>