《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于LPC900單片機(jī)的射頻數(shù)傳模塊開發(fā)
基于LPC900單片機(jī)的射頻數(shù)傳模塊開發(fā)
EEworld
摘要: 無線數(shù)傳設(shè)備DTD433可以提供高穩(wěn)定、高可靠、低成本的數(shù)據(jù)傳輸。它提供了透明的RS232/RS485接口,具有安裝維護(hù)方便、繞射能力強(qiáng)、組網(wǎng)結(jié)構(gòu)靈活、大范圍覆蓋等特點,適合于點多而分散、地理環(huán)境復(fù)雜等應(yīng)用場合。該設(shè)備提供點對點通信,也可以實現(xiàn)點對多點通信,不需要編寫程序,不需要布線。一般電工調(diào)試也可以通過。無線數(shù)據(jù)傳輸設(shè)備廣泛應(yīng)用于無線數(shù)傳領(lǐng)域,典型應(yīng)用包括遙控、遙感、遙測系統(tǒng)中的數(shù)據(jù)采集、檢測、報警、過程控制等環(huán)節(jié)。   
Abstract:
Key words :

  無線數(shù)傳設(shè)備DTD433可以提供高穩(wěn)定、高可靠、低成本的數(shù)據(jù)傳輸。它提供了透明的RS232/RS485接口,具有安裝維護(hù)方便、繞射能力強(qiáng)、組網(wǎng)結(jié)構(gòu)靈活、大范圍覆蓋等特點,適合于點多而分散、地理環(huán)境復(fù)雜等應(yīng)用場合。該設(shè)備提供點對點通信,也可以實現(xiàn)點對多點通信,不需要編寫程序,不需要布線。一般電工調(diào)試也可以通過。無線數(shù)據(jù)傳輸設(shè)備廣泛應(yīng)用于無線數(shù)傳領(lǐng)域,典型應(yīng)用包括遙控、遙感、遙測系統(tǒng)中的數(shù)據(jù)采集、檢測、報警、過程控制等環(huán)節(jié)。

  1 射頻數(shù)傳模塊開發(fā)平臺的構(gòu)建

  建立軟硬件開發(fā)平臺是模塊開發(fā)的首要任務(wù),比較了幾種射頻數(shù)傳模塊方案,最后決定采用由LPC900系列FLASH單片機(jī)和CC1000射頻傳輸芯片為主芯片的開發(fā)方案。

  1.1 主芯片簡介

  LPC2900 FLASH單片機(jī)是恩智浦半導(dǎo)體(NXP Semiconductors)(由飛利浦創(chuàng)建的獨立半導(dǎo)體公司)發(fā)布了LPC2900系列微控制器,進(jìn)一步擴(kuò)展了其ARM7和ARM9微控制器業(yè)界最廣泛的生產(chǎn)線。恩智浦LPC2900基于廣受歡迎的、高性能的ARM968E-S處理器,針對工業(yè)、醫(yī)療、發(fā)動機(jī)控制和汽車電子行業(yè)內(nèi)的應(yīng)用,為設(shè)計師提供一個具有高成本效益、靈活的、低功耗的解決方案。

  CC1000是根據(jù)Chipcon公司的SmartRF技術(shù),在0.35μm CMOS 工藝下制造的一種理想的超高頻單片收發(fā)通信芯片。它的工作頻帶在315、868及915MHz,但CC1000很容易通過編程使其工作在300~1000MHz范圍內(nèi)。它具有低電壓(2.3~3.6V),極低的功耗,可編程輸出功率(-20~10dBm),高靈敏度(一般-109dBm),小尺寸(TSSOP-28封裝),集成了位同步器等特點。其FSK數(shù)傳可達(dá)72.8Kbps,具有250Hz步長可編程頻率能力,適用于跳頻協(xié)議;主要工作參數(shù)能通過串行總線接口編程改變,使用非常靈活。

  1.2 開發(fā)平臺構(gòu)建

  LPC900系列單片機(jī)提供了較為完善的軟硬件開發(fā)工具,在系統(tǒng)開發(fā)中采用TKS932仿真器,用于系統(tǒng)的仿真、調(diào)試。該仿真器支持目前流行的KEILC公司的μVisionⅡ集成開發(fā)環(huán)境。

  通過自行設(shè)計的射頻模塊開發(fā)板以及附加一些輔助電路,配合TKS932仿真器及軟件開發(fā)工具μVisionⅡ,構(gòu)成的射頻數(shù)傳模塊開發(fā)平臺的框圖如圖1所示。

  

 

  PC機(jī)的COM1口與TKS932仿真器進(jìn)行通信,對模塊軟件進(jìn)行軟、硬件仿真。COM2口則與LPC922進(jìn)行通訊,一方面可以把軟件調(diào)試信息更加直觀地反映出來,配合軟件調(diào)試;另一方面可以通過該串口接收或者發(fā)送數(shù)據(jù)到射頻模塊。

  2 軟件開發(fā)及調(diào)試

  2.1 數(shù)傳模塊軟件基本結(jié)構(gòu)說明

  射頻傳輸芯片CCl000具有3種狀態(tài):IDEL(空閑),RX(接收數(shù)據(jù)),TX(發(fā)送數(shù)據(jù))。整體上看,這是個具有3種狀態(tài)的狀態(tài)機(jī)模型,狀態(tài)之間的相互轉(zhuǎn)換見圖2。模塊主程序除了完成基本的芯片初始化工作外,程序的運(yùn)行主要是根據(jù)在CC1000的DCLK管腳產(chǎn)生的中斷,由中斷管理程序進(jìn)行狀態(tài)檢測及切換.

  

 

  2.2 軟件調(diào)試開發(fā)中遇到的問題分析

  該開發(fā)平臺采用的軟件開發(fā)環(huán)境為μVisionⅡ。該環(huán)境內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開發(fā)工具,可以完成從工程建立和管理、編譯、連接、目標(biāo)代碼的生成,軟件仿真,硬件仿真等完整的開發(fā)流程。即使不使用C語言而僅用匯編語言編程,其方便的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令開發(fā)進(jìn)度大大加快。但是其開發(fā)環(huán)境又有其自身的特色,需要對其中一些特殊的問題加以考慮。

關(guān)鍵字:LPC900單片機(jī) 射頻數(shù)傳模塊

 

  2.2.1 程序中的關(guān)鍵字

 

  在進(jìn)行程序設(shè)計時不能使用C51編譯器的關(guān)鍵字來定義變量名或者函數(shù)名。C51是區(qū)別大、小字母的,而關(guān)鍵字都是小寫字母。

  一些函數(shù)定義從字面上看沒有問題,但在編譯時均指示錯誤,查看C51關(guān)鍵字有關(guān)目錄,查出原因在于變量參數(shù)data為其關(guān)鍵字,造成了編譯時的錯誤。

  下面列出了一些常用的關(guān)鍵字,在程序設(shè)計時定義變量或函數(shù)名時應(yīng)特別注意避免使用:

  _at_,alien,bdata,bit,code,data,idata,large,pdata,sbit,sfr,sfrl6,smal,task,using,xdata,priority。

  2.2.2 BIT和SBIT的區(qū)別和全局變量、局部變量的使用

  bit主要用位變量操作。sbit雖然也是用于位變量的操作,但其使用范圍較bit更廣泛。sbit不僅可以用于定義可位尋址寄存器的各個位,使我們可以對寄存器進(jìn)行位操作,sbit的另一個重要作用在于構(gòu)建類似于共用體數(shù)據(jù)類型,這種數(shù)據(jù)類型在LPC922與CC1000的串行/并行數(shù)據(jù)相互轉(zhuǎn)換中起著重要的作用。例如:

  unsigned char bdata myDatas2;//定義一個可位尋址的全局變量

  //定義變量的各個位

  sbit cDatas0=myDatas2^O;

  sbit cDatasl=myDatas2^l;

  sbit cDatas2=myDatas2^2;

  sbit cDatas3=myDatas2^3;

  sbit eDatas4=myDatas2^4;

  sbit eDatas5=myDatas2^5;

  sbit cDatas6=myDatas2^6;

  sbit cDatas7=myDatas2^7;

  在這里myDatas2既可以作為一個8位的變量使用,同時各個位也可以單獨使用,這在串/并數(shù)據(jù)轉(zhuǎn)換的場合是很有用的。特別需要注意的是,myDatas2這個可位尋址變量必須以全局變量的形式予以定義,如果定義為局部變量,編譯器也將產(chǎn)生錯誤。

  2.2.3 UART通訊和函數(shù)調(diào)用

  在進(jìn)行硬件仿真時,需要進(jìn)行LPC922與PC機(jī)之間的UART串行通信,這樣可以把有關(guān)調(diào)試信息直觀地顯示在超級終端上。初期一直存在無法通信問題,為此調(diào)試了有關(guān)串口讀寫的底層代碼。

  原來的單片機(jī)與PC機(jī)串口通訊寫程序如下:

  原來的UART寫字符串函數(shù)writeln是通過調(diào)用putchar函數(shù)來進(jìn)行的,但在硬件仿真時一直出錯,當(dāng)把這部分程序單獨分離出來進(jìn)行仿真時,卻未出現(xiàn)問題。后來分析考慮推想可能原因是:C51由于內(nèi)部堆棧空間的限制,在函數(shù)調(diào)用時,提供的是一種壓縮棧,每個過程被給定一個空間用于存放局部變量,過程中的每個變量都存放在這個空間的固定位置,當(dāng)多重調(diào)用或者遞歸調(diào)用這個過程時,會導(dǎo)致變量被覆蓋而出錯。此時應(yīng)把該函數(shù)定義為可重入函數(shù),但是再入函數(shù)因為要做一些特殊的處理,一般運(yùn)行起來都比較慢。在這個程序中寫UART操作對函數(shù)putchar調(diào)用時,程序的其他部分也在調(diào)用該函數(shù),覆蓋了傳遞給putchar函數(shù)的參數(shù),導(dǎo)致程序運(yùn)行出錯。于是對程序做了修改如下:

  修改過的程序與原來程序差別在于不再進(jìn)行putchar函數(shù)調(diào)用,而直接進(jìn)行有關(guān)操作。修改后再進(jìn)行硬件仿真,問題得到了很好的解決。由此可以看到,LPC900單片機(jī)由于內(nèi)部堆棧資源有限,在程序設(shè)計時當(dāng)發(fā)現(xiàn)程序運(yùn)行異常時,應(yīng)特別注意函數(shù)調(diào)用帶來的問題。當(dāng)然出現(xiàn)這個問題還可能會有其他方面的原因。

  2.2.4 看門狗

  當(dāng)系統(tǒng)處于一些比較惡劣環(huán)境(工控、底層采集等),如果系統(tǒng)的抗干擾沒有做好,則容易出現(xiàn)"死機(jī)"現(xiàn)象,這時硬件電路并沒有損壞,只是內(nèi)部程序運(yùn)行出現(xiàn)錯誤,必須復(fù)位才能恢復(fù),這時可用"看門狗"來解決問題。看門狗定時器子系統(tǒng)可通過復(fù)位使系統(tǒng)從錯誤的操作中恢復(fù)。但是任何事情都有其兩面性,當(dāng)軟件沒能在定時器溢出之前將其清零或者重新賦值,看門狗定時器就會導(dǎo)致系統(tǒng)產(chǎn)生一次復(fù)位,從而產(chǎn)生錯誤。

  仿真開發(fā)板上采用的是LPC922,因此對其復(fù)位時的有關(guān)看門狗的寄存器進(jìn)行了具體分析,最后發(fā)現(xiàn)問題是由于沒有在一定的時間內(nèi)及時對看門狗進(jìn)行重新的配置參數(shù)造成的。通過對WDCON,WDL,WFEED1,WFEED2這4個與看門狗有關(guān)的寄存器進(jìn)行合理配置,很好地解決了程序復(fù)位問題。

  2.2.5 LPC900讀操作和CC1000寄存器讀寫

  LPC900系列單片機(jī)通常也具有51單片機(jī)的一些特點,在使用時也應(yīng)注意。當(dāng)其I/O口作為輸入口使用時,有2種工作方式,即讀端口和讀引腳。讀端口實際上并不從外部讀入數(shù)據(jù),而只是把端口鎖存器的內(nèi)容讀到內(nèi)部總線,經(jīng)過某種運(yùn)算或者變換后,再寫回到端口鎖存器。

  讀引腳時才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。這時要先通過指令,把端口鎖存器置1,然后再進(jìn)行讀引腳操作,否則就可能讀錯。在LPC922讀寫CC1000寄存器過程中涉及到有關(guān)讀引腳操作問題,應(yīng)區(qū)別這2種工作方式。

  3 結(jié)語

  在本文介紹的開發(fā)平臺上利用LPC900系列單片機(jī)實現(xiàn)了根據(jù)不同的應(yīng)用需要對射頻模塊上CC1000寄存器進(jìn)行有效的參數(shù)讀寫配置控制,初步達(dá)到了設(shè)計要求。對軟件開發(fā)中所遇到問題的分析討論,在LPC900系列單片機(jī)的應(yīng)用開發(fā)中也具有較廣泛的實際意義。

  

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
午夜日韩av| 中国亚洲黄色| 99精品视频网| 亚洲激情视频在线| 亚洲高清自拍| 亚洲国产精品久久久久| 一区二区三区自拍| 国产自产精品| 狠狠久久亚洲欧美| 伊人夜夜躁av伊人久久| 精品999日本| 韩国av一区二区| 激情婷婷久久| 在线电影院国产精品| 伊人激情综合| 在线观看日韩专区| 亚洲电影免费在线观看| 亚洲第一视频| 91久久精品国产91性色 | 国产欧美一区二区精品婷婷| 国产精品久久久久久久久免费桃花 | 欧美激情第三页| 欧美精品一区二区久久婷婷| 欧美老女人xx| 欧美午夜久久| 国产精品每日更新| 国产小视频国产精品| 国内久久精品| 亚洲国产日日夜夜| 亚洲精品四区| 亚洲少妇诱惑| 欧美一区二区三区播放老司机| 欧美一区三区三区高中清蜜桃 | 国产精品久久久久毛片软件| 国产精品入口尤物| 国产一区二区精品久久| 狠狠色狠色综合曰曰| 亚洲国产精品一区二区www在线| 亚洲伦理在线观看| 亚洲午夜精品视频| 欧美一区在线看| 亚洲全部视频| 亚洲午夜高清视频| 先锋a资源在线看亚洲| 久久久青草婷婷精品综合日韩| 欧美/亚洲一区| 欧美午夜精品久久久久免费视| 国产美女精品| 18成人免费观看视频| 一区二区三区国产精华| 香港久久久电影| 亚洲看片一区| 亚洲欧美日本在线| 老司机免费视频一区二区| 欧美另类高清视频在线| 国产日本欧美一区二区三区在线 | 国内精品**久久毛片app| 亚洲二区三区四区| 在线视频一区二区| 久久国产精品99精品国产| 日韩性生活视频| 欧美一区二区三区喷汁尤物| 欧美成人亚洲成人| 国产精品素人视频| 亚洲人成网站色ww在线| 先锋影音国产精品| 亚洲精品小视频| 欧美在线免费观看| 欧美人与禽猛交乱配视频| 国产欧美一区二区精品秋霞影院 | 一区二区三区日韩精品视频| 久久精品亚洲精品| 亚洲性视频h| 免费久久久一本精品久久区| 国产精品乱看| 亚洲国产裸拍裸体视频在线观看乱了 | 99精品国产在热久久婷婷| 欧美一区二区三区免费在线看 | 亚洲欧洲日韩女同| 亚洲欧美资源在线| 一区二区三区日韩在线观看| 久久夜色精品亚洲噜噜国产mv | 亚洲精品久久7777| 久久不见久久见免费视频1| 亚洲一区成人| 欧美激情精品久久久久久变态| 国产一区二区视频在线观看 | 欧美一区二区视频在线观看| 欧美日韩国产欧| 在线观看视频免费一区二区三区| 亚洲欧美日韩在线综合| 亚洲视频在线观看视频| 欧美gay视频| 狠狠入ady亚洲精品经典电影| 香蕉久久a毛片| 亚洲——在线| 欧美精品在线一区二区三区| 亚洲国产mv| 久久国产综合精品| 久久av一区二区| 国产精品久久久久高潮| 亚洲精品免费在线| 亚洲欧洲日产国产网站| 巨胸喷奶水www久久久免费动漫| 国产日韩欧美视频| 亚洲免费视频在线观看| 亚洲欧美国产高清| 欧美日韩亚洲在线| 亚洲精品乱码久久久久久久久 | 国内免费精品永久在线视频| 午夜国产精品视频| 午夜精品一区二区三区四区| 欧美日韩在线亚洲一区蜜芽| 亚洲精品三级| 99视频一区二区| 欧美巨乳波霸| 亚洲激情综合| 亚洲乱码国产乱码精品精天堂| 免费在线播放第一区高清av| 在线观看视频一区| 亚洲欧洲日本国产| 欧美激情视频一区二区三区免费 | 欧美视频一区二区| 一本综合精品| 亚洲午夜精品17c| 欧美午夜精品久久久久久孕妇 | 欧美日韩免费观看一区| 亚洲人成人99网站| 夜夜嗨一区二区三区| 欧美日韩在线精品| 一区二区精品国产| 亚洲影音一区| 国产精品综合| 久久精品国产亚洲精品| 六月天综合网| 亚洲国产美女久久久久| 9色porny自拍视频一区二区| 欧美性猛交一区二区三区精品| 亚洲一区免费视频| 久久高清福利视频| 精品二区视频| 一本色道久久综合狠狠躁的推荐| 欧美日韩一区二区三区在线 | 久久国产精品电影| 久久这里只有| 亚洲国产精品久久久久久女王| 一本一本久久a久久精品综合妖精| 欧美日韩在线免费视频| 亚洲综合精品自拍| 久久综合激情| 日韩一区二区免费高清| 亚洲综合社区| 国外成人性视频| 亚洲精品一区二区三区四区高清 | 欧美激情一区二区三区| 日韩亚洲欧美高清| 午夜欧美视频| 狠狠爱综合网| 亚洲一区三区在线观看| 国产亚洲激情视频在线| 99国产精品视频免费观看| 国产精品久久7| 欧美一区成人| 欧美日韩精品一区二区三区| 亚洲免费在线看| 欧美成人在线免费观看| 中日韩美女免费视频网址在线观看 | 老司机成人在线视频| 99国产麻豆精品| 久久精品二区三区| 亚洲精品一区二区三区婷婷月 | 国内成人精品视频| 亚洲桃花岛网站| 国内精品久久久久久| 一本色道久久88综合亚洲精品ⅰ| 国产日本精品| 一区二区三区免费看| 国产综合18久久久久久| 亚洲天堂偷拍| 激情视频一区| 亚洲欧美在线aaa| 亚洲丁香婷深爱综合| 翔田千里一区二区| 亚洲欧洲美洲综合色网| 久久国产福利| 一区二区三区免费看| 另类天堂视频在线观看| 亚洲一区免费看| 欧美另类久久久品| 久久激情视频| 国产精品毛片大码女人| 亚洲精品在线视频| 国产一区二区久久| 亚洲综合色婷婷| 亚洲精品韩国| 免费av成人在线| 午夜伦理片一区| 欧美性大战xxxxx久久久| 亚洲精品麻豆| 国内外成人免费激情在线视频|