女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 單片機 > 單片機
[導讀] 通信頻率為2.4GHz的ISM 頻段,由于其免許可證、波長較短、天線的尺寸小、外圍器件少等優(yōu)點,適合于近距離無線通信。將ARM9 與nRF24E1 結(jié)合, 可以縮小設備體積, 降低系統(tǒng)功耗, 減少設備間連線困難等

 

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

 

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

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

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

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

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

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

  

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

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

1.2 nFR2401 與S3C2440 的接口設計

nFR2401 與S3C2440 的接口設計如圖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)絡將數(shù)據(jù)發(fā)送給上位機。

  

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

2 軟件設計

系統(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 后,對相關文件進行添加修改。配置其運行環(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)核的設置主要是裁減和添加, 裁減不用的驅(qū)動程序和外設,添加需要的驅(qū)動。

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

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

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

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

statICint 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″);

 

tq2440_nf24_open 函數(shù)用于打開設備, 設置功能引腳,將指定的引腳設置成是讀狀態(tài)還是寫狀態(tài)。由于S3C2440 與S3C2410 相差甚微,所以用一些S3C2410 的子函數(shù),減少程序開發(fā)的工作量。如:s3c2410_gpio_cfgPIN(nf24_table [i],nf24_cfg_table[i]),nf24_table[],nf24_cfg_table[]是兩個靜態(tài)數(shù)組, nf24_table[]指定要設置的引腳,nf24_cfg_table[]指定設置到哪種工作模式。引腳的的定義在頭文件里,其位置在內(nèi)核文件系統(tǒng)下,路徑為asm / arch / regs-gpio.h.

 

tq2440_nf24_read,tq2440_nf24_ioctl 函數(shù)執(zhí)行相應的讀寫操作。通過子函數(shù):s3c2410_gpio_cfgpin (nf24_table[0],nf24_cfg_table[5]);

dr=s3c2410_gpio_getpin(nf24_table[0]);可以將采集到的管腳狀態(tài)通過操作系統(tǒng)內(nèi)核送到應用程序, 由應用程序?qū)⑽惶幚沓勺止?jié)。

module_init(),module_exit()用于模塊的加載和退出。

MODULE_AUTHOR(″cgq″),MODULE_LICENSE(″GPL″ )函數(shù)說明了函數(shù)的作者和遵循的協(xié)議。

2.2 nFR2401 驅(qū)動軟件設備號

字符設備有一個主設備號和一個次設備號。主設備號標識設備對應的驅(qū)動程序, 內(nèi)核利用主設備號將設備與相應的驅(qū)動程序?qū)饋?。次設備號只由設備驅(qū)動程序使用,區(qū)分同類型設備。向系統(tǒng)增加一個驅(qū)動程序意味著要給它一個主設備號。驅(qū)動編寫時,先不設置主設備號。待編寫完成后,加載驅(qū)動程序后,查看/ proc / devices 文件,查找系統(tǒng)分配給設備的主設備號。然后修改驅(qū)動程序中的設備號,重新編譯即可。例如在實驗中,系統(tǒng)對nFR2401 的主設備號分配為:

  #define DEVICE_NAME ″nf24″ / *″TQ2440_nf24″*/

  #define NF24_MAJOR 253 / *nf24_MAJOR 198*/

2.3 nFR2401 應用軟件設計

應用軟件主要完成數(shù)據(jù)的發(fā)送、接收和存儲。為了使相關程序調(diào)用方便。將數(shù)據(jù)的發(fā)送、接收和存儲按照模塊化編寫。圖2 是程序的主體流程圖。

  

  圖2 發(fā)送、接收流程圖

系統(tǒng)上電后,當程序執(zhí)行到調(diào)用該設備時,打開相關設備文件時,首先通過open()函數(shù)打開設備,如果沒有正常打開,則顯示錯誤信息, 進行相應處理。

如果打開正常。首先對nFR2401 進行配置編程。

將CS、CE 設為配置模式。通過CLK 和DATA 將通道的數(shù)據(jù)長度、通道的地址、地址的位數(shù)、CRC 校驗和、使能、通信模式、速率等配置數(shù)據(jù)由高位到低位移入芯片。配置字一共120bit.將CS、CE 設為工作模式,nFR2401 將刷新內(nèi)部配置并使新配置立即生效。隨后就按照配置的工作方式工作。

在數(shù)據(jù)采集實驗系統(tǒng)中, 隨運動部件的RF 芯片剛開始處于接收命令, 接收到工作指令時, 開始將采集到的數(shù)據(jù)發(fā)送出去。連接S3C2440 的設備發(fā)送完工作指令后,就處于接收狀態(tài)。

這樣就避免了使nRF2401 處于頻繁的工作模式變動之中,節(jié)省了時間,加快了數(shù)據(jù)傳輸?shù)乃俣取p少了丟數(shù)的概率。

所有相關程序編譯完成后, 將驅(qū)動程序放入內(nèi)核文件系統(tǒng)的/ driver / char 文件夾下, 編譯后生成的驅(qū)動執(zhí)行文件入文件系統(tǒng)的/ lib 文件夾下,應用程序放在/ opt 下,修改系統(tǒng)啟動文件順序即/ etc / init.d / rcS 文件并添加“insmod / lib / nf24.ko” 系統(tǒng)啟動時即可加載驅(qū)動。然后重新編譯,移植內(nèi)核,文件系統(tǒng)。燒寫、重啟后,即可按原先的設計工作。

3 結(jié)束語

S3C2440 與nRF2401 的結(jié)合,是對Linux 外設的擴展。系統(tǒng)的集成度高,傳輸速率高。芯片自身的糾錯機制能確保信號能夠準確傳輸。多

 

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉