<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于S3C2440的nRF2401驅(qū)動設(shè)計

          基于S3C2440的nRF2401驅(qū)動設(shè)計

          作者: 時間:2012-08-03 來源:網(wǎng)絡(luò) 收藏

           通信頻率為2.4GHz 的ISM 頻段,由于其免許可證、波長較短、天線的尺寸小、外圍器件少等優(yōu)點,適合于近距離無線通信。將ARM9 與nRF24E1 結(jié)合, 可以縮小設(shè)備體積, 降低系統(tǒng)功耗, 減少設(shè)備間連線困難等問題。針對ARM9 芯片 的特點了對nFR24E1 的接口電路和程序。對于在狹小空間中,有設(shè)備之間的數(shù)據(jù)共享要求的系統(tǒng)是一種有效解決途徑。

          本文引用地址:http://www.ex-cimer.com/article/154218.htm

            2.4GHz 無線設(shè)備的使用,免去了系統(tǒng)之間連線的煩惱。一方面可以降低設(shè)備的成本,另一方面就是可以簡化設(shè)備的安裝。

            特別是對于一些運動部件的實時測量,借助兩個無線傳輸設(shè)備,可以將一部分測量設(shè)備做到運動部件上,另一部分安裝在附近,就可以將運動部件的實時數(shù)據(jù)傳輸出來, 供人員對設(shè)備實時工作的性能進行詳細分析和改進。本文著重介紹nRF24E1 與 的硬件連接以及在Linux 操作系統(tǒng)下的。無線設(shè)備采用NF2401AG 芯片。

            1 硬件結(jié)構(gòu)

            nFR2401A 是Nordic 公司的一款單片2.4GHz 無線傳輸芯片。該芯片由一個完全集成的頻率合成器,一個功率放大器,晶體振蕩器和調(diào)制器組成, 輸出功率和頻率可以通過3 線接口編程設(shè)置。

            1.1 nFR2401 的通信協(xié)議與工作模式

            nFR2401 之間的無線收發(fā)是以數(shù)據(jù)包的形式發(fā)送和接收的。其數(shù)據(jù)包格式如下:

            數(shù)據(jù)包格式

            其中,前緩沖是硬件自動添加,地址由用戶設(shè)定。為32~40位;循環(huán)冗余校驗由內(nèi)置CRC 糾檢錯硬件電路自動添加??稍O(shè)為0、8 或6 位。所有的數(shù)據(jù)總共長度為256 位。

            nFR2401 的工作模式有配置模式、工作模式、待機模式、掉電模式四種。模式由主控芯片通過軟件設(shè)置。芯片上電后, 通過接口將配置數(shù)據(jù)送入芯片,設(shè)置收發(fā)模式、收發(fā)頻率、接收地址、發(fā)射功率、CRC 校驗和的長度、有效數(shù)據(jù)的長度等。傳輸中,只有地址,校驗和匹配的數(shù)據(jù)包才能被進一步處理, 產(chǎn)生中斷信號。這時,S3C2440 讀取數(shù)據(jù)。在同一時刻nFR2401 只能處于接收或發(fā)送模式中的一種, 一般以接收模式為待機狀態(tài)。

            1.2 nFR2401 與S3C2440 的接口設(shè)計

            nFR2401 與S3C2440 的接口設(shè)計如圖1 所示。通過將S3C2440 芯片的GPD 口與nFR2401 連接。S3C2440 的GPD口為多功能口,主要是LCD 屏的接口。由于系統(tǒng)沒有顯示部分,所以將該口用作了nFR2401 的接口。系統(tǒng)工作時,無線通信一直處于工作狀態(tài),所以將PWR_UP 引腳直接與VDD 相連。系統(tǒng)采用通道1,S3C2440 對nFR2401 采用查詢模式, 接收到上位機工作命令后, 只要nFR2401 的DR1 指示接收到數(shù)據(jù),S3C2440 就通過CS、CE、DATA、CLK 讀取數(shù)據(jù),并以文件的形式進行存儲,然后通過網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送給上位機。

            圖1 系統(tǒng)框圖。

            圖1 系統(tǒng)框圖。

            2 軟件設(shè)計

            系統(tǒng)以Linux 作為操作系統(tǒng)。以S3C2440 為平臺使用Linux 操作系統(tǒng),主要有U-boot 的移植,Linux 的移值,文件系統(tǒng)的編譯燒寫等幾個步驟。U-boot 用于基本硬件的初始化和檢測、加載引導內(nèi)核和文件系統(tǒng)的啟動。下載U-boot-1.1.1 后,對相關(guān)文件進行添加修改。配置其運行環(huán)境在S3C2440 核心板上, 然后編譯得到u-boot.bin 和內(nèi)核映像封裝工具tools /mkimage. 引導程序boot.bin、U-boot 映像u-boot.ing 及其gzip 壓縮文件u-boot.gz 三個文件構(gòu)成的完整的啟動加載程序。內(nèi)核的設(shè)置主要是裁減和添加, 裁減不用的程序和外設(shè),添加需要的驅(qū)動。

            在Linux 操作系統(tǒng)下編程,分為用戶層和驅(qū)動層。用戶層即為應(yīng)用程序。應(yīng)用程序負責數(shù)據(jù)的存儲和發(fā)送;驅(qū)動程序負責對nFR2401 的連接引腳進行操作。應(yīng)用程序與驅(qū)動程序通過庫和內(nèi)核相連解決數(shù)據(jù)的傳遞和共享。

           2.1 nFR2401 驅(qū)動軟件設(shè)計

            設(shè)備驅(qū)動程序即設(shè)備管理, 其目標是對所有外接設(shè)備進行良好的讀、寫、控制等操作。對硬件的使用留給應(yīng)用程序。所以對設(shè)備進行操作的系統(tǒng)調(diào)用和對文件的操作類似,主要包括open()、close()、read()、write()、ioctl()等。應(yīng)用程序發(fā)出系統(tǒng)調(diào)用指令以后,會從用戶態(tài)轉(zhuǎn)換到內(nèi)核態(tài),通過內(nèi)核將open()這樣的系統(tǒng)調(diào)用轉(zhuǎn)換成對物理設(shè)備的操作。

            驅(qū)動程序任務(wù)包括自動配置和初始化子程序和服務(wù)于I /O請求的子程序。針對不同的設(shè)備,驅(qū)動程序分為:字符設(shè)備驅(qū)動,塊設(shè)備驅(qū)動,網(wǎng)絡(luò)接口驅(qū)動。

            字符設(shè)備以字節(jié)流訪問設(shè)備,以字節(jié)為單位對其讀寫。字符設(shè)備的驅(qū)動程序?qū)崿F(xiàn)了系統(tǒng)調(diào)運。應(yīng)用程序以設(shè)備文件訪問字符設(shè)備。通過register_chrdev()或unregister_chrdev()對字符設(shè)備進行注冊和注銷。中斷申請用request_irq()函數(shù),釋放中斷用free_irq () 驅(qū)動程序中包含的結(jié)構(gòu)和函數(shù)有:nf24_table 和nf24_cfg_table,定義的結(jié)構(gòu)主要應(yīng)用于對引腳的定義和功能的設(shè)置。函數(shù)有:

            static int tq2440_nf24_open(struct inode *inode,struct file *file)

            static int tq2440_nf24_read (struct file *filp,char __user *buf,

            size_t len, loff_t *offp)

            static int tq2440_nf24_ioctl( struct inode *inode, struct file

            *file, unsigned int cmd, unsigned long arg)

            module_init(tq2440_nf24_init);

            module_exit(tq2440_nf24_exit);

            MODULE_AUTHOR(″cgq″);

            MODULE_LICENSE(″GPL″);


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();