《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ARM920T的紅外通信系統(tǒng)的設(shè)計
基于ARM920T的紅外通信系統(tǒng)的設(shè)計
來源:微型機與應(yīng)用2010年第24期
施文娟
(鹽城師范學(xué)院 物理科學(xué)與電子技術(shù)學(xué)院,江蘇 鹽城 224002)
摘要: 提出了采用以基于內(nèi)核ARM920T的嵌入式微處理器S3C2440A為核心,以基于嵌入式Linux的ZHX1403為紅外收發(fā)器的紅外通信系統(tǒng)的設(shè)計方案。設(shè)計了紅外收發(fā)器在嵌入式Linux操作系統(tǒng)下的驅(qū)動程序,并給出了紅外通信系統(tǒng)應(yīng)用的設(shè)計編程方法。
Abstract:
Key words :

摘  要: 提出了采用以基于內(nèi)核ARM920T的嵌入式微處理器S3C2440A為核心,以基于嵌入式LinuxZHX1403為紅外收發(fā)器的紅外通信系統(tǒng)的設(shè)計方案。設(shè)計了紅外收發(fā)器在嵌入式Linux操作系統(tǒng)下的驅(qū)動程序,并給出了紅外通信系統(tǒng)應(yīng)用的設(shè)計編程方法。
關(guān)鍵詞: 紅外通信;ARM920T;S3C2440A;Linux;ZHX1403

    目前,嵌入式系統(tǒng)已經(jīng)進入了蓬勃發(fā)展的時代,越來越多的帶紅外通信功能的嵌入式設(shè)備走進人們的生活當(dāng)中。紅外通信是利用紅外光進行通信的一種空間通信方式。紅外通信標(biāo)準(zhǔn)IrDA(Infrared Data Association)是目前IT和通信業(yè)普遍支持的近距離無線數(shù)據(jù)傳輸規(guī)范。盡管通信距離只有幾米,卻有很多優(yōu)勢:紅外連接比有線連接更安全可靠,并且避免了因線纜和連接器磨損和斷裂造成的檢修;它的小型化和低成本,很適合應(yīng)用在便攜式產(chǎn)品中;并且紅外通信成本低廉,跨平臺適應(yīng)性好,傳輸速率高,適宜用于低成本、跨平臺、點對點高速數(shù)據(jù)連接,尤其適用于嵌入式系統(tǒng)。
1 IrDA標(biāo)準(zhǔn)簡介
    紅外標(biāo)準(zhǔn)IrDA的章程是建立通用的、低功率電源的、半雙工紅外串行數(shù)據(jù)互聯(lián)標(biāo)準(zhǔn)、支持近距離、點到點、設(shè)備適應(yīng)性廣的用戶模式。建立該標(biāo)準(zhǔn)是在各種設(shè)備之間較容易地進行低成本紅外通信的關(guān)鍵。
    IrDA就是一個點對點的協(xié)議,用在近距離進行異步串行傳輸。IrDA規(guī)范1.0定義了數(shù)據(jù)傳輸率最高到115.2 kb/s的紅外通信;規(guī)范1.1將數(shù)據(jù)傳輸率提高到4 Mb/s,并保持了對版本1.0產(chǎn)品的兼容; 規(guī)范1.2定義了最高速度為 115.2 kb/s下的低功耗選擇;規(guī)范1.3將這種低功耗選擇功能推廣到1.152 Mb/s和4 Mb/s[1],規(guī)范1.4廢棄并替代了規(guī)范1.3,定義了最高速度為16 Mb/s下的低功耗選擇[2]。
2 紅外通信系統(tǒng)的總體方案
    基于ARM920T的紅外通信系統(tǒng)由軟、硬件兩部分組成。硬件部分包括基于ARM920T內(nèi)核的微處理器S3C2440A及存儲器等硬件開發(fā)平臺和基于紅外收發(fā)器ZHX1403的紅外通信模塊兩部分;軟件部分包括紅外通信模塊驅(qū)動程序、紅外通信應(yīng)用程序和嵌入式Linux操作系統(tǒng)三部分。
3 紅外通信系統(tǒng)的硬件設(shè)計
3.1 硬件開發(fā)平臺

    嵌入式系統(tǒng)硬件開發(fā)平臺采用S3C2440A為控制器。S3C2440A是32 bit RISC處理器,內(nèi)嵌ARM920T核。它的低功耗,簡潔,美觀和全靜態(tài)設(shè)計特別適用于對成本和功耗敏感的應(yīng)用場合。S3C2440A提供手持設(shè)備和低功率的一般應(yīng)用的方案,以及高性能的微控制器解決方案[3]。
    S3C2440A有如下特點:(1)最高可達(dá)400 MHz的主頻;(2)內(nèi)部集成LCD控制器(高達(dá)4 K彩色STN和256 K色TFT)液晶顯示專用的DMA;(3)3路異步串行通信接口(支持IrDA1.0,64 B的FIFO發(fā)送和64 B的FIFO接收);(4)IIS音頻編解碼器接口;(5)內(nèi)置看門狗定時電路及實時時鐘(RTC);(6)內(nèi)部集成兩路USB主控制器和1路USB設(shè)備控制器(版本1.1);(7)4路PWM定時器,1通道內(nèi)部定時器/看門狗定時器;(8)130個通用I/O端口,24通道外部中斷源;(9)8路10 bit ADC和觸摸屏接口;(10)增強型ARM架構(gòu)的MMU支持WinCE、嵌入式Linux操作系統(tǒng)。
3.2 紅外通信模塊
    ZHX1403是ZiLOG公司出品的一款專用于PDA、網(wǎng)絡(luò)應(yīng)用、醫(yī)療電子、手持式設(shè)備的紅外收發(fā)器,且與IrDA1.4協(xié)議標(biāo)準(zhǔn)兼容[4]。它支持所有紅外通信協(xié)議支持的SIR紅外傳輸速率,采用半雙工串行傳輸方式,并具有Always On技術(shù),使得長時間的紅外功能開啟成為可能,為紅外設(shè)備的應(yīng)用增加了更多的可能性。它具有極小巧的外型尺寸(7.3 mm×2.8 mm×1.9 mm),應(yīng)用電路的空間也是非常小,只需要外接兩個外部元件,與其他支持IrDA標(biāo)準(zhǔn)的收發(fā)器間的典型數(shù)據(jù)連接距離可達(dá)1 m。
    ZHX1403有7個引腳,依次是NC、Vcc、GND、SD、RXD、TXD、LEDA。ZHX1403與S3C2440 處理器連接電路如圖1所示。LEDA通過一個外接的電阻接到Vcc上,給紅外管提供工作電流。ZHX1403接收數(shù)據(jù)輸出端口TXD與S3C2440A的GPH4/TXD1連接,ZHX1403發(fā)送數(shù)據(jù)輸入端口RXD與S3C2440A的GPH5/RXD1。掉電模式使能控制端SD與S3C2440A的GPB0/TOUT0連接,用來將內(nèi)部的電路控制在關(guān)閉模式。ZHX1403把接收到的數(shù)據(jù)通過GPH5/RXD1傳送給S3C2440A,S3C2440A把預(yù)發(fā)送的數(shù)據(jù)通過GPH4/TXD1發(fā)送給ZHX1403的TXD端口,再通過紅外收發(fā)器發(fā)射管發(fā)送。

4 紅外通信系統(tǒng)的軟件設(shè)計
4.1 紅外通信協(xié)議的實現(xiàn)

    紅外數(shù)據(jù)通信標(biāo)準(zhǔn)包括基本協(xié)議和特定應(yīng)用領(lǐng)域的協(xié)議兩類。類似于TCP-IP協(xié)議,它是一個層式結(jié)構(gòu),其結(jié)構(gòu)形成一個棧,如表1所示[5]。

    其中有3個基本的規(guī)范和協(xié)議,即為必要協(xié)議:(1)紅外物理層協(xié)議 IrPHY(Infrared Physical Layer);(2)紅外連接訪問協(xié)議層 IrLAP(Infrared Link Access Protocol);(3)紅外連接管理協(xié)議層 IrLMP(Infrared Link Management Protocol)。以上每一層的功能是為上一層提供特定的服務(wù)。其中物理層協(xié)議制定了紅外通信硬件設(shè)計上的目標(biāo)和要求,處于最底層。其他兩層屬于軟件協(xié)議的范圍,負(fù)責(zé)對鏈接進行設(shè)置、管理和維護。
    在IrLMP協(xié)議上層的協(xié)議都屬于可選的紅外數(shù)據(jù)通信協(xié)議,可用于特定應(yīng)用領(lǐng)域的規(guī)范和協(xié)議:(1)流傳輸協(xié)議(TinyTP);(2)對象交換協(xié)議(IrOBEX);(3)模擬串口層協(xié)議(IrCOMM);(4)局域網(wǎng)訪問協(xié)議(IrLAN);(5)信息訪問服務(wù)協(xié)議(IAS)。
    驅(qū)動部分是協(xié)議棧的最主要部分,包括了IrLAP、IrLMP、TinyTP、IAS、IrOBEX、IrCOMM和IrLAN等協(xié)議。IrLAP、IrLMP是兩個必選的軟件協(xié)議。物理層上的第一層為IrLAP,它的功能是支持鏈路初始化、設(shè)備地址目錄、解決沖突、創(chuàng)建連接、數(shù)據(jù)交換、接觸連接和鏈路關(guān)閉,并且規(guī)定了紅外數(shù)據(jù)包的幀結(jié)構(gòu)及紅外通信的錯誤檢測方法。IrLMP提供建立在IrLAP連接上的多路復(fù)用及數(shù)據(jù)鏈路管理。TinyTP對數(shù)據(jù)傳輸進行流控制。IAS提供一個設(shè)備所擁有的相關(guān)服務(wù)檢索表。IrOBEX提供文件和其他數(shù)據(jù)對象的交換服務(wù)。IrCOMM使當(dāng)前的應(yīng)用能夠在IrDA平臺上使用串、并口通信,而不必進行轉(zhuǎn)換。IrLAN能為筆記本電腦和其他設(shè)備開啟IR局域網(wǎng)通道[6]。
    整個紅外協(xié)議棧比較龐大,在嵌入式系統(tǒng)中,由于微處理器的速度和存儲器容量的限制,沒有必要實現(xiàn)整個紅外協(xié)議棧,可以將協(xié)議棧簡化,根據(jù)實際需求,有選擇地實現(xiàn)自己需要的協(xié)議和功能[7]。
4.2 紅外通信模塊驅(qū)動程序的設(shè)計
    (1)初始化
    IrDA不是單純的串口物理通信規(guī)范,而是一種網(wǎng)絡(luò)傳輸控制標(biāo)準(zhǔn)。在Linux操作系統(tǒng)下,紅外通信是作為一類特殊的網(wǎng)絡(luò)設(shè)備來支持的。Linux必須按網(wǎng)絡(luò)設(shè)備驅(qū)動方法來組織紅外數(shù)據(jù)的網(wǎng)絡(luò)傳輸。在linux/net/irda中有紅外設(shè)備的代碼。可以用下面的函數(shù)初始化一個紅外設(shè)備:
    struct net_device *alloc_irdadev(int sizeof_priv)
    {
        return alloc_netdev(sizeof_priv,”irda%d”,irda_device_
setup);
    }
    當(dāng)內(nèi)核啟動或加載網(wǎng)絡(luò)驅(qū)動模塊的時候,就會調(diào)用初始化過程。首先檢測網(wǎng)絡(luò)物理設(shè)備是否存在,通過檢測系統(tǒng)中的紅外串行接口完成,然后初始化與紅外相關(guān)的寄存器,隨后構(gòu)造設(shè)備的device數(shù)據(jù)結(jié)構(gòu),用檢測到的數(shù)值對device中的變量初始化。最后向Linux內(nèi)核中注冊該設(shè)備并申請內(nèi)存空間。
    (2)數(shù)據(jù)包的發(fā)送和接收
    數(shù)據(jù)包的發(fā)送和接收是實現(xiàn)嵌入式Linux操作系統(tǒng)下紅外驅(qū)動程序中兩個最關(guān)鍵的過程[8]。首先在網(wǎng)絡(luò)設(shè)備驅(qū)動加載時,通過device域中的init函數(shù)指針調(diào)用紅外設(shè)備的初始化函數(shù)對設(shè)備進行初始化。初始化成功后可以通過調(diào)用紅外設(shè)備的打開函數(shù)打開設(shè)備,申請紅外中斷,啟動隊列。數(shù)據(jù)包的發(fā)送通過調(diào)用s3c2440_irda_hard_xmit函數(shù),禁止接收,關(guān)閉中斷,將上層交付的數(shù)據(jù)幀放入到低層驅(qū)動的緩沖區(qū)中。進入發(fā)送模式,允許發(fā)送中斷,在中斷服務(wù)時把底層驅(qū)動緩沖區(qū)中的數(shù)據(jù)發(fā)送到紅外接口。
    數(shù)據(jù)包的接收通過中斷來完成。當(dāng)有數(shù)據(jù)到達(dá)時,就會產(chǎn)生中斷信號,紅外設(shè)備驅(qū)動功能層就調(diào)用接收中斷處理程序,讀取URXH(串口接收緩沖寄存器)中的數(shù)據(jù)。
4.3 紅外通信程序設(shè)計
    應(yīng)用層的網(wǎng)絡(luò)編程一般利用套接字建立雙方的虛擬連接。紅外通信的Socket稱為紅外套接字(IrSock)。在Linux中,每一種協(xié)議都有自己的網(wǎng)絡(luò)地址數(shù)據(jù)結(jié)構(gòu),均以sockaddr_開頭。Linux內(nèi)核在af_irda.c文件中實現(xiàn)了IrDA套接字。定義紅外套接字如下:
    struct sockaddr_irda{
    sa_family_t sir_family;//協(xié)議類型,一般是AF_IRDA
    _u8 sir_lsap_sel;
    _u32 sir_addr;
    char sir_name[25];
    }
    分配完套接字后,用bind綁定地址,用listen建立偵聽,等待接收客戶連接。使用send和recv與客戶端通信,最后使用closesocket關(guān)閉連接。
    本文在以基于ARM920T內(nèi)核的微處理器S3C2440A為核心的嵌入式開發(fā)平臺上詳細(xì)介紹了嵌入式Linux操作系統(tǒng)下紅外通信系統(tǒng)的設(shè)計和實現(xiàn)過程。通過對照硬件規(guī)范,可以實現(xiàn)嵌入式Linux操作系統(tǒng)下將紅外協(xié)議移植到特定的嵌入式系統(tǒng)中。在嵌入式Linux操作系統(tǒng)下紅外通信系統(tǒng)的開發(fā)對今后的嵌入式系統(tǒng)的應(yīng)用研究具有較強的實用性,使紅外技術(shù)能在嵌入式系統(tǒng)中得到廣泛的應(yīng)用。
參考文獻
[1] 張曉紅,SASDAT S,喬為民,等.紅外通信IrDA標(biāo)準(zhǔn)與應(yīng)用[J].光電子技術(shù),2003,23(4):261-265.
[2] Infrared Data Association(IrDA).Infrared Data Association Serial Infrared Physical Layer Specification,Version1.4[EB/OL].[2005-5-30].http://www.irda.org/standards/specifications.asp.
[3] S3C2440A 32-BIT CMOS Microcontraller User’s Manual[R].Samsung Electronics,2004.
[4] ZHX1403 SIR UltraSlim transceiver product specification[R].ZiLOG Worldwide Headquarters,2002.
[5] 葉輝.紅外通訊協(xié)議在嵌入式系統(tǒng)中的實現(xiàn)[J].電子技術(shù)應(yīng)用,2004,30(7):68-71.
[6] 邱磊,肖兵.基于IrDA協(xié)議棧的紅外通信綜述[J].無線通信技術(shù),2004,13(4):28-32.
[7] 陳祖爵,王繼鳳,王加民.基于嵌入式Linux的紅外通信系統(tǒng)設(shè)計[J].計算機工程與設(shè)計,2009,30(4):816-818,854.
[8] 周亦敏,佟國香.基于Linux的紅外網(wǎng)絡(luò)通信的實現(xiàn)[J].
     儀器儀表學(xué)報,2005(Z2):478-481.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一区二区三区在线高清| 正在播放日韩| 国产精品成人观看视频免费| 欧美激情综合色综合啪啪| 久久久.com| 欧美一区中文字幕| 午夜免费久久久久| 亚洲欧美日本在线| 亚洲欧美日本视频在线观看| 在线亚洲欧美视频| 亚洲视频欧美视频| 中文av一区二区| 国产精品99久久久久久久vr| 一本色道久久88亚洲综合88| 99热精品在线| 亚洲一级黄色片| 亚洲资源av| 午夜精品福利一区二区三区av| 亚洲免费综合| 欧美一区在线直播| 久久久久久久高潮| 久久久久青草大香线综合精品| 久久精品夜色噜噜亚洲aⅴ| 久久乐国产精品| 久久综合久久综合久久| 男人的天堂亚洲| 欧美激情中文不卡| 国产精品成人一区二区艾草| 国产精品美女久久久久aⅴ国产馆| 国产精品久久久久99| 国产欧美69| 国产在线播精品第三| **网站欧美大片在线观看| 亚洲国产日韩欧美| 99xxxx成人网| 亚洲欧美日韩视频二区| 久久狠狠婷婷| 日韩一二三区视频| 亚洲一区二区三区四区在线观看| 午夜久久久久久| 久久久久国产一区二区三区四区 | 久久精品一区二区国产| 亚洲国产视频一区二区| 夜夜精品视频一区二区| 亚洲免费视频中文字幕| 久久久国产精彩视频美女艺术照福利| 麻豆久久精品| 欧美人与禽性xxxxx杂性| 国产精品日韩二区| 狠狠色香婷婷久久亚洲精品| 亚洲国产精品久久人人爱蜜臀| 一本综合久久| 欧美在线播放| 99精品久久免费看蜜臀剧情介绍| 亚洲女性喷水在线观看一区| 久久久一本精品99久久精品66| 欧美国产日本在线| 国产精品一区三区| 亚洲国产高清高潮精品美女| 亚洲特色特黄| 亚洲国产一区二区三区高清 | 亚洲综合色噜噜狠狠| 久久天堂国产精品| 欧美涩涩视频| 韩日成人在线| 在线视频日韩| 亚洲国产天堂久久国产91| 亚洲欧美一区二区精品久久久| 久久一区二区三区超碰国产精品| 欧美日韩精品免费观看视频完整| 国产一区二区三区观看| 亚洲久色影视| 亚洲国产电影| 午夜久久福利| 欧美连裤袜在线视频| 国产亚洲亚洲| 一本色道久久综合狠狠躁的推荐| 久久国产高清| 亚洲综合视频一区| 欧美激情一区二区三区| 国产一区二区黄| 中日韩男男gay无套| 亚洲欧洲日产国产综合网| 性8sex亚洲区入口| 欧美日韩无遮挡| 在线免费观看日韩欧美| 亚洲欧美一区二区三区久久 | 国产麻豆精品视频| 日韩特黄影片| 亚洲人在线视频| 久久久亚洲国产天美传媒修理工| 欧美午夜视频在线| 亚洲精品国产精品国自产在线| 久久黄色小说| 久久精品五月| 国产精品免费网站| 亚洲精品美女在线| 亚洲日韩欧美视频一区| 欧美中文字幕在线观看| 国产精品福利在线观看| 亚洲精品久久久久久久久| 亚洲经典自拍| 久久伊人免费视频| 国产一区二区日韩精品欧美精品| 亚洲性人人天天夜夜摸| 中文国产一区| 欧美精品亚洲精品| 亚洲激情在线观看| 亚洲日本中文字幕免费在线不卡| 久久一区国产| 国内自拍一区| 久久精品免费播放| 久久久亚洲成人| 好吊色欧美一区二区三区视频| 欧美一区二粉嫩精品国产一线天| 香蕉成人伊视频在线观看| 国产精品免费一区二区三区在线观看 | 中文日韩电影网站| 亚洲一级片在线观看| 欧美揉bbbbb揉bbbbb| 日韩一二三在线视频播| 日韩亚洲欧美精品| 欧美连裤袜在线视频| 亚洲精一区二区三区| 一区二区三区不卡视频在线观看| 欧美激情综合五月色丁香| 亚洲国产天堂久久综合网| 亚洲精品小视频在线观看| 欧美激情精品久久久久久久变态| 亚洲欧洲综合另类| 一区二区日韩免费看| 欧美日韩亚洲视频一区| 亚洲视频每日更新| 午夜精品999| 国产三级欧美三级| 亚洲国产成人午夜在线一区 | 国产精品久久久久aaaa樱花| 亚洲视屏一区| 欧美一区中文字幕| 好吊色欧美一区二区三区四区 | 亚洲茄子视频| 欧美精品一区二区三区蜜桃 | 亚洲日本成人网| 欧美激情一区| 一区二区三区四区五区视频| 小处雏高清一区二区三区| 国产午夜久久| 91久久精品日日躁夜夜躁国产| 欧美激情小视频| 一区二区三区欧美在线| 欧美在线亚洲在线| 在线观看福利一区| 亚洲视频精品在线| 国产日韩精品一区二区三区在线 | 亚洲欧美成人一区二区三区| 国产日韩精品在线| 亚洲日本中文字幕免费在线不卡| 欧美日韩一区不卡| 亚洲欧美一区二区视频| 蜜桃av一区| 99天天综合性| 久久久久综合网| 91久久精品国产91久久| 亚洲综合丁香| 激情欧美日韩一区| 亚洲网站视频福利| 国产有码一区二区| 一本久久青青| 国内精品福利| 中文久久精品| 国产主播一区二区三区| 一区二区三区蜜桃网| 国产亚洲精品久久久久婷婷瑜伽| 亚洲精品欧美激情| 国产精品嫩草影院av蜜臀| 亚洲国产成人在线播放| 欧美亚洲不卡| 亚洲国产成人在线| 国产精品看片你懂得| 亚洲国产日韩欧美一区二区三区| 欧美三级日本三级少妇99| 欧美影院精品一区| 欧美性猛片xxxx免费看久爱| 亚洲高清不卡av| 国产精品99免费看 | 曰本成人黄色| 宅男在线国产精品| 国产一区美女| 亚洲天堂男人| 在线观看亚洲精品| 欧美亚洲午夜视频在线观看| 亚洲国产成人不卡| 香蕉成人伊视频在线观看 | 久久久噜噜噜久久人人看| 一区二区三区国产在线| 欧美成人一品| 欧美在线观看一二区| 国产精品久久久久久久久久尿 | 欧美黄色网络| 久久精品一区二区三区中文字幕|