畢業(yè)設計--基于可見光通信的定位數據接口及應用技術研究_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  摘 要</b></p><p>  可見光通信技術是21世紀興起的無線光通信技術,是對光無線通信領域的又一開拓。在可見光通信中,LED燈的作用極為顯著。LED燈在系統中同時起到室內照明和通信的雙重功能,是傳統照明系統所無法比擬的。在本文中,將以可見光通信為基礎,實現室內定位技術,為以后實現高精度室內定位技術打下基礎。在可見光通信定位系統中,引入了新型的移動平臺

2、——安卓。安卓的搭建將使可見光通信系統變得更加便攜。</p><p>  本文主要論述可見光通信系統的組成及原理,FPGA模塊的原理,以及安卓移動平臺搭建與軟件開發(fā)。作者閱讀了大量可見光通信系統相關文獻,并在Eclipse平臺上用java語言開發(fā)了軟件來接收從FPGA模塊傳輸的數據并在坐標系中顯示出來。</p><p>  本文首先介紹可見光通信系統的應用背景;其次論述可見光通信系統的工作

3、原理;然后簡單論述FPGA模塊的工作原理;接著介紹及安卓移動平臺及開發(fā)的軟件;然后再介紹實驗中使用的芯片及;最后介紹芯片與電腦端及FPGA模塊的連接及軟件在芯片與FPGA相連時的結果及其分析。</p><p>  關鍵詞:可見光通信;室內定位;FPGA;安卓</p><p><b>  Abstract</b></p><p>  Visibl

4、e light communication is a new technique of Wireless optical communication in 21century, which is a new development of Wireless optical communication. In the visible light communication,LED plays an important role. LED c

5、an be lighting and transmit source at the same time, which is beyond the traditional source. In this paper, we will use the visible light communication system as a basement to built the indoors-positioning system so that

6、 it can be used in the further high-accuracy positioni</p><p>  This paper puts emphasis on the construction and the theory of visible light communication system, the theory of FPGA. and how to use android d

7、evelopment tools to build android software. The author read a great amount of literature and standard papers, manage to build the software in java on the eclipse platform to receive the data from FPGA and display in the

8、coordinate system.</p><p>  In this paper, the author firstly introduces the background of visible light communication. Secondly he details the theory of visible light communication system. Then, the author

9、discusses how FPGA works. Next, he discusses what is android and how to build software in the computer, and presents the software using in the experiment. Then, he presents the chips using in the experiment. Finally, the

10、 author presents the result of connecting the chips to the FPGA and to the computer, analyses and sub</p><p>  Keywords: Visible Light Communications; Indoors Positioning; FPGA; Android;</p><p>

11、<b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  目 錄III</b></p><p><b>  第1章引 言1</b></p>

12、<p>  1.1選題背景——室內定位的應用前景1</p><p>  1.2定位技術現狀1</p><p>  1.3本文的安排和作者的工作概要2</p><p>  第2章可見光通信技術及系統4</p><p>  2.1光通信的發(fā)展歷程4</p><p>  2.1.1光通信的關鍵

13、突破4</p><p>  2.1.2LED照明技術的興起4</p><p>  2.1.3光通信基本概念及其優(yōu)點4</p><p>  2.2可見光通信的工作原理5</p><p>  2.2.1傳統不可見光無線通信技術5</p><p>  2.2.2可見光通信技術6</p>&

14、lt;p>  2.3室內可見光通信系統7</p><p>  2.3.1典型室內可見光通信系統基本組成7</p><p>  2.3.2室內可見光通信定位系統8</p><p>  2.3.3可見光光通信系統的特點9</p><p>  第3章通信平臺的建立10</p><p>  3.1信

15、號處理模塊——FPGA模塊結構與接口10</p><p>  3.1.1FPGA基本組成10</p><p>  3.1.2FPGA的特點10</p><p>  3.1.3FPGA的配置模式10</p><p>  3.1.4FPGA的配置過程12</p><p>  3.1.5UART異步串行通

16、信口13</p><p>  3.2安卓移動平臺13</p><p>  3.2.1安卓系統的特點14</p><p>  3.2.2安卓系統的架構14</p><p>  3.2.3搭建安卓開發(fā)平臺Eclipse16</p><p>  3.3安卓軟件開發(fā)18</p><p&

17、gt;  3.3.1接收模塊18</p><p>  3.3.2數據轉換模塊19</p><p>  3.3.3顯示模塊20</p><p>  第4章安卓設備的連接與通信21</p><p>  4.1FT311D模塊21</p><p>  4.1.1FT311D模塊介紹21</p&g

18、t;<p>  4.1.2FT311D產品特點22</p><p>  4.2FT232RL模塊22</p><p>  4.2.1FT232RL模塊介紹22</p><p>  4.2.2FT232RL產品特點23</p><p>  4.3電腦端與安卓設備之間的連接與通信24</p><

19、;p>  4.3.1電腦端、模塊與安卓的連接24</p><p>  4.3.2電腦端與安卓設備連接測試25</p><p>  4.4FPGA模塊與安卓設備之間的連接通信28</p><p>  4.4.1FPGA與安卓的連接28</p><p>  4.4.2FPGA與安卓的連接測試30</p>&

20、lt;p><b>  總 結32</b></p><p><b>  致 謝33</b></p><p><b>  參考文獻34</b></p><p><b>  引 言</b></p><p>  選題背景——室內定位的應用前景<

21、;/p><p>  隨著經濟的不斷增長和現代技術的不斷發(fā)展,加上智能手機的普及以及移動互聯網的發(fā)展,導航、定位服務的需求日益增大,地圖與導航類軟件將更側重于室內導航,尤其是在比較復雜的室內環(huán)境,如展覽館、機場大廳、圖書館、倉庫、超市、地下停車場等公共場所,常常需要確定人們在室內的位置信息。據研究調查顯示,人們平均80%至90%的時間在室內,其中平均70%的時間在使用移動電話,80%數據連接使用時間在室內。因而室內定位

22、有著十分廣泛的應用前景。</p><p>  在公共安全和應急響應方面,室內定位有助于救援人員精確定位求救者,定位建筑物的位置,甚至是樓層、房間號。在手機購物、移動電子商務、個性化廣告和優(yōu)惠信息方面可以通過室內定位根據不同的位置發(fā)送不同信息。室內定位在大型建筑物公共安全、應急疏散及災后救援等重大需求面前,需要在建筑物內精確定位位置,而實現在大型復雜建筑環(huán)境內高精度的定位將為導航監(jiān)控與應急服務管理提供幫助。<

23、/p><p><b>  定位技術現狀</b></p><p>  定位技術可大致分為室外定位和室內定位兩種。</p><p>  室外定位我們比較熟悉的是全球定位系統(GPS),是由美國建立的一個衛(wèi)星導航定位系統。GPS定位主要用于對人及設備進行實時遠程定位監(jiān)控的技術。但由于全球定位系統GPS屬于衛(wèi)星定位,定位精度較低。而隨著基于定位技術的服務受

24、到越來越多的關注,實現高精度的定位越來越成為人們的需求,引得國內外對室內定位研究很熱。室內定位是指在一定空間內的定位技術。</p><p>  有許多大學和研究機構一直在研究室內定位技術,這些技術的實現方法主要可以分為三種:三角定位法,場景分析法以及近似法,常用的室內定位技術主要有紅外線、802.11、超聲波和無線射頻(RFID)技術。</p><p>  紅外線:Olivetti研究實驗

25、室的Active Badge系統采用紅外線技術實現室內定位技術,有直線視距和傳輸距離較短兩大主要缺點,使得它在室內定位中的效果較差。</p><p>  IEEE802.11:RADAR是一種基于射頻的室內定位系統,采用標準的802.11網絡對空間進行定位,該系統采用經驗測試和信號傳播模型相結合的方式,易于安裝、需要很少基站,能采用相同的底層無線網絡結構,但系統總精度不高。</p><p>

26、;  超聲波:Active Bat是采用超聲波定位的典型例子,它采用超聲波時延信號進行定位,其整體定位精度較高,但需要大量的底層硬件設施投資,成本太高。</p><p>  無線射頻技術RFID定位是一種基于信號強度的定位技術,它使用接收到的信號強度指示(Received Signal Strength Indicator,RSSI)來確定待定位物體的位置。無線射頻識別RFID具有其獨特的非接觸性,以及非視性(不

27、用在可視范圍內),但它仍有占用無線電頻譜、有電磁干擾和電磁輻射等缺點。</p><p>  除了上述這些方法,最新的一個研究熱點是基于LED白光的可見光通信技術的室內定位。白光LED用電場發(fā)光、低電壓供電,光效高、壽命長、安全性好、穩(wěn)定性高、低功耗、無輻射、抗震、可靠、耐用,是理想的照明光源。白光LED的響應時間短、具有高速調制特性,使得白光LED還可以進行通信,實現照明和通信雙重功能,使可見光通信技術(Visi

28、ble Light Communication,簡稱VLC)因運而生。與傳統射頻通信以及其它無線光通信系統相比,可見光通信技術的發(fā)射功率高,且不占用無線電頻譜、無電磁干擾和無電磁輻射、節(jié)約能源[2],使得它成為室內定位中一個研究的熱點。</p><p>  本文的安排和作者的工作概要</p><p>  經過老師和學長學姐們的努力,實驗室里已經初步搭建好一個可見光通信系統平臺,其中三個LE

29、D燈兩兩相距20cm,成一個等邊三角形,三角形中間放置一個光電探測器,光電探測器可以接收來自三個LED燈的光強信號并通過FPGA模塊形成位置信息,位置數據再傳入電腦上位機,電腦上位機根據不同的位置發(fā)送不同位置的廣告信息,實現在不同位置傳輸和顯示不同廣告信息的功能。</p><p>  然而由于電腦端比較笨拙,不利于攜帶,考慮到未來手機設備,移動電子商務等發(fā)展起來,應用在移動平臺上更有寬廣的應用前景,于是本文提出了

30、一種用安卓移動設備作為上位機,通過有線的方式實現FPGA的數據接收和傳輸。</p><p>  本文第2章詳細地講述可見光通信系統的基本組成以及系統的原理。</p><p>  第3章介紹通信平臺的建立,包括FPGA模塊的工作原理以及模塊的接口類型、安卓移動平臺、安卓開發(fā)平臺及實驗中安卓軟件的具體代碼。</p><p>  第4章介紹應用于本次實驗的兩個開發(fā)模塊——

31、FT311D模塊及FT232RL模塊、電腦端及FPGA模塊與安卓設備之間,檢驗軟件的可行性</p><p>  可見光通信技術及系統</p><p><b>  光通信的發(fā)展歷程</b></p><p><b>  光通信的關鍵突破</b></p><p>  1880年,貝爾把太陽光當作光源,以大

32、氣為傳輸媒質,用硒晶體接收光,成功實現光電話,通話距離最遠達到213米。1881年,貝爾用一篇題為《關于利用光線進行聲音的產生與復制》的論文,報導了他的光電話裝置。</p><p>  1960年,美國著名科學家梅曼(Meiman)發(fā)明了世界上第一個紅寶石激光器。激光器發(fā)出的激光譜線很窄,比傳統的光源要窄好多,而且強度又高、方向性又好、相干性還好,是極為理想的相干光源,作為信息的載體是最好不過的了。在光纖發(fā)展起來

33、之后,不可見光通信系統漸漸成熟起來。</p><p>  LED照明技術的興起</p><p>  最近幾年,隨著發(fā)光二極管Light Emitting Diode,LED半導體器件的照明技術發(fā)展迅速,將信號調制到LED燈上,使LED具有照明和通信兩種功能,實現可見光傳輸信息的技術也逐漸發(fā)展起來。隨著工藝的不斷進步,白光LED光源得以生產。白光LED燈的出現使高效率照明技術前進了一大步,也

34、使可見光通信得以有載體傳輸信息。</p><p>  白光LED采用電場發(fā)光和低電壓供電,具有壽命長、光效高、穩(wěn)定性高、安全性好、無輻射、低功耗、抗震、可靠耐用等特點,幾乎綜合了各種傳統光源的優(yōu)點,被譽為2l世紀新固體光源時代的革命性技術。用白光LED來傳輸超高速數據是明智的選擇。白光LED可以在波長450nm至470nm的藍光LED上覆蓋一層YAG淡黃色熒光粉涂層制成,這種黃色磷光體是摻了鈰的釔鋁石榴石(Ce3

35、+:YAG)晶體磨成粉末后和一種稠密的黏合劑混合制成的。</p><p>  光通信基本概念及其優(yōu)點</p><p>  光通信指的是用光作為信息的載體來傳遞信息,它是由電通信發(fā)展而來。在光通信以前基本是利用電通信。光通信技術是與成熟的電通信技術密不可分的?,F代的光通信技術基本還是電通信技術和光子技術相結合的技術。光通信技術與電通信技術相結合,使得通信技術在電通信技術的基礎上多加上了光通信

36、的優(yōu)點。這些優(yōu)點有:</p><p>  容許的頻帶很寬,在不同頻帶上傳輸都可以。</p><p>  傳輸帶寬較大,容量較大。</p><p>  損耗較小,經中繼后可傳輸的距離很長。</p><p><b>  誤碼率較小。</b></p><p><b>  抗電磁干擾。</

37、b></p><p>  安全性高,保密性好。</p><p><b>  節(jié)約金屬材料。</b></p><p>  可見光通信的工作原理</p><p>  傳統不可見光無線通信技術</p><p>  可見光是電磁波譜中人眼可以感知的電磁波部分,不可見光是指除可見光外其他所有人眼所不能

38、感知的電磁波,包括無線電波、微波、紅外光、紫外光、x射線、γ射線、遠紅外線等。</p><p>  利用950nm近紅外波段的紅外光來通信的技術叫紅外通信技術。紅外通信先將二進制信號在發(fā)送端調制成一系列脈沖串信號,信號傳入紅外發(fā)射管中,由紅外發(fā)射管發(fā)射紅外信號,信號經過紅外信道傳輸到接收端,接收端將接收到的光脈沖轉換回電信號。電信號經放大、濾波等處理后,進入解調電路進行解調,還原成二進制數字信號,最后輸出。<

39、;/p><p>  利用在200nm到280nm之間的紫外光通信來。紫外光通信基于大氣散射和吸收,基本原理是以日盲區(qū)的光譜為載波,將信息電信號在發(fā)射端調制,然后加載至紫外光載波上,信號通過大氣散射作用傳播,信號到達接收端時,接收端接收紫外光束,經解調轉換成原信號。紫外光通信在復雜環(huán)境下可近距離通信,且抗干擾、安全性好。</p><p>  射頻頻段的無線電波應用最廣泛,無線電技術利用導體中電流

40、強度的改變產生無線電波,通過把信號調制到無線電波上進行傳輸,在接收端,無線電波會引起電磁場變化從而在導體中產生電流,將信號從電流中解調出來就實現了通信。</p><p><b>  可見光通信技術</b></p><p>  可見光通信(Visible Light Communications,VLC)技術指通過把高速信號調制到半導體器件LED燈上進行傳輸,用光電探測

41、器接收光載波信號,因肉眼察覺不到光LED燈的高速調制,使得LED燈同時具有照明和通信兩個作用。室內可見光通信是在LED燈發(fā)展起來之后新興的一門技術。</p><p>  通信系統發(fā)射端將信號調制成電信號,再通過LED燈轉換成光信號傳輸。接收端用光電探測器將可見光信號接收并轉化成電信號,最后解調信號讀取。</p><p>  傳統光通信利用不可見光,一般是無線電磁波傳播信息。由于傳統光通信已

42、經很成熟了,相匹配的標準也是很受業(yè)界支持采用。傳統的光通信可以利用中轉站傳輸到很遠的地方,而且覆蓋面特別廣。但無線電占用無線電磁譜,高頻的無線電磁波還容易被電子設備干擾,且對人體有電磁輻射傷害,這些缺點使得可見光通信的優(yōu)點顯現出來??梢姽馔ㄐ挪徽加脽o線電磁譜,沒有電磁干擾和電磁輻射,雖然傳輸距離受到限制,但從另一方面講可以使得信息不泄漏,保證了信息的安全??梢姽馔ㄐ诺耐ㄐ潘俣瓤蛇_兆每秒或百兆每秒,通過LED燈照射就可以傳輸信息,通信速率

43、可以保證多臺電腦同時使用。</p><p>  本節(jié)主要介紹了光通信的發(fā)展以及可見光通信的工作原理,與傳統光通信不同的是,可見光通信系統所用的可見光波長范圍為紫色的380nm到紅色的780nm,這也體現了可見光通信系統既能用來照明,又能用來通信的特點。下一節(jié)我們會討論可見光通信在室內定位技術里的應用。</p><p><b>  室內可見光通信系統</b></p

44、><p>  典型室內可見光通信系統基本組成</p><p>  圖21室內可見光通信系統結構示意圖</p><p>  如圖所示為室內可見光通信系統的典型結構圖,該系統包含白光LED光源、可見光無線集線器(VLC Hub)、計算機、可見光通信適配器(VLC Adapter)、光電探測器(PD)及相應信號處理單元等。計算機發(fā)出信息,通過適配器把信息傳輸到天花板上的光電

45、探測器,探測器將光信息轉換成電信號,在傳入無線集線器。集線器將信號處理后通過光源發(fā)射出去,到達計算機接收端時,信號被解調出來,傳入計算機實現通信。</p><p>  可見光通信系統包括下行鏈路(down link)和上行鏈路(up link)兩部分,兩條鏈路都包括發(fā)射和接收。由白光LED光源和信號處理單元完成發(fā)射部分。LED主光源在天花板上,每個用戶的適配器上還都有一個用戶光源。</p><

46、p>  室內可見光通信定位系統</p><p>  如圖所示為室內可見光通信定位系統結構圖:</p><p>  圖22室內可見光通信定位系統結構圖</p><p>  室內可見光通信定位系統包括LED燈、光電探測器、FPGA信號處理模塊等。室內可見光系統也有上行鏈路和下行鏈路。其中上行鏈路由用戶發(fā)送信息至服務器,下行鏈路由服務器發(fā)送信息至用戶。</p

47、><p>  在實驗中有三個兩兩相距20cm的LED燈在光電探測器上方,光電探測器放置于三個LED燈之間。下行鏈路中,LED燈發(fā)出的光經過不同的距離傳輸到光電探測器上,接收到來自三個不同的LED燈發(fā)出的光,探測出距離三個LED燈的距離信息,把距離信息傳輸到FPGA模塊,FPGA模塊把信息進行處理。在FPGA模塊中,以其中一個LED燈為原點,三個LED燈組成的三角形的一邊為x軸,建立坐標系,把接收到的距離信息轉化成位置

48、坐標信息并輸出,通過有線的方式傳輸至終端顯示,完成下行鏈路。</p><p>  在實驗中用安卓系統來作為終端來顯示數據,同時安卓系統還可以把用戶的信息還可以發(fā)送回服務器,也就是可以實現上行鏈路。但安卓可以用多種方式連接。大致有以下三種方式:</p><p>  用音頻接口連接。音頻接口傳輸速率不快,而且以音頻信號為主,在這里不是很適合用作信號傳遞的接口。</p><p

49、>  用藍牙連接。藍牙可以無線傳播,速率也可以很快,但藍牙一旦遇到人多的時候就有可能連接不上。</p><p>  用USB接線連接。USB接線可以連接到安卓上,雖然是用有線的方式,但它克服了多個終端同時連接的問題,傳輸速率可以很快。是實驗中比較理想的連接方式。</p><p>  可見光光通信系統的特點</p><p>  與普通光無線通信和射頻通信相比,可

50、見光通信具有以下突出特點[4]:</p><p>  1)可見光無毒無害;</p><p>  2)可見光可以通過室內LED燈安裝,方便快捷。</p><p>  3)發(fā)射功率高。普通光無線通信如果發(fā)射功率一高會損害人的眼睛,因而發(fā)射功率不能太高。而可見光無害,發(fā)射功率較高。</p><p>  本章介紹可見光通信系統的組成及室內可見光

51、通信定位系統的組成,是本實驗所依賴的系統,也是實驗的基礎。下一章將介紹可見光通信系統中信號處理的模塊。</p><p><b>  通信平臺的建立</b></p><p>  信號處理模塊——FPGA模塊結構與接口</p><p><b>  FPGA基本組成</b></p><p>  FPGA是

52、英文Field-Programmable Gate Array的縮寫,即現場可編程門陣列,它是在PAL可編程化陣列邏輯Programmable Array Logic、GAL通用陣列邏輯Generic Array Logic、CPLD復雜可編程邏輯器件Complex Programmable Logic Device等可編程器件的基礎上更新一步發(fā)展的產物?,F場可編程門陣列是專用集成電路(ASIC Application-specific

53、 integrated circuit)領域中的一種半定制電路,有定制的優(yōu)點,且與傳統可編程器件相比,它還有多種門電路</p><p>  它的出現不但解決了定制電路的不足,而且克服了原有可編程器件門電路數有限的缺點。</p><p>  FPGA采用邏輯單元陣列LCA(Logic Cell Array),內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸

54、出輸入模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。</p><p><b>  FPGA的特點</b></p><p>  1)FPGA可以設計ASIC電路,不需要生產芯片。</p><p>  2)FPGA可作為試樣測試全定制或半定制ASIC電路。</p><p&g

55、t;  3)FPGA內部有極其豐富的觸發(fā)器和I/O引腳。</p><p>  4)FPGA的設計周期很短、開發(fā)費用很低、風險非常小的器件。</p><p>  5)FPGA用了高速CHMOS工藝,功耗低且兼容CMOS、TTL電平。 </p><p><b>  FPGA的配置模式</b></p><p>  FPG

56、A用芯片中的RAM存入程序,根據程序來設置工作狀態(tài),當FPGA工作是,需要在RAM中寫入程序。程序可以配置FPGA的模式,不同的配置模式用不同的編程方式寫入。加電時,FPGA芯片將EPROM(Erasable Programmable Read Only Memory)中的數據讀入芯片內的編程RAM中,完成后,FPGA開始工作。斷電后,FPGA內部邏輯關系消失,這使得FPGA可以重復使用。FPGA編程無須專用的編程器,用通用的EPROM

57、或PROM就可以。要改變程序功能時只需換一片EPROM就可以了。所以,FPGA可以通過不同的程序來使用不用的電路功能,這是FPGA特別靈活的地方。</p><p>  FPGA器件需要每次都配置一次,所以配置下載方式也有不同,分為以下三種:主動串行配置方式(AS)和被動串行配置方式(PS)和JTAG聯合測試工作組(Joint Test Action Group)配置方式。</p><p>

58、  主動串行AS配置方式</p><p>  由FPGA器件引導配置過程,所使用的器件是新型低成本器件,如EPCS1、EPCS4。器件的芯片包含永久性存儲器和四個引腳接口。AS配置芯片有一個串行接口來存取數據,FPGA主動從串行接口讀取數據。AS配置方式可以通過DATA0引腳把數據傳入FPGA,而且與DCLK輸入同步,每一個DCLK時鐘周期傳輸一位數據。由于這種模式由FPGA主動去配置接口,因而這種配置方式稱為主

59、動串行配置方式,即AS配置方式。它與FPGA的接口為以下簡單的4個信號線:</p><p>  . 串行時鐘輸入DCLK: </p><p>  . AS控制信號輸入ASDI;</p><p>  . 片選信號nCS;</p><p>  . 串行數據輸出DATA0。</p><p>  被動串行PS配置方式</

60、p><p>  被動串行PS配置方式是由外接計算機或控制器來控制配置過程的配置方式,這種方式可以使用下載電纜、加強型配置器件等配置器件或智能主機來配置,配置時DATA0引腳把數據傳入FPGA,在DCLK上升沿鎖存,每一個時鐘周期傳入一位數據。在這種配置方式下,由于FPGA被動接收配置時鐘、命令和數據,發(fā)出配置狀態(tài)信號等,因而這種配置方式被稱為被動串行配置方式,即PS配置方式。與FPGA的信號接口:</p>

61、<p>  . 配置時鐘DCLK;</p><p>  . 配置數據DATA0;</p><p>  . 配置命令nCONFIG;</p><p>  . 狀態(tài)信號nSTATUS;</p><p>  . 配置完成指示CONF_DONE。</p><p><b>  JTAG配置方式</b

62、></p><p>  JTAG是國際標準的測試協議,主要用于測試芯片。JTAG接口用聯合邊界掃描接口引腳,配置可用Altera下載電纜或主控器。JTAG接口由四個必需的信號TDI、TDO、TMS和TCK以及一個可選信號TRST組成,其中:</p><p>  . TDI用于測試數據的輸入;</p><p>  . TDO用于測試數據的輸出;</p>

63、;<p>  . TMS模式控制管腳,決定JTAG電路TAP狀態(tài)機的跳變;</p><p>  . TCK測試時鐘;</p><p>  . TRST:如果JTAG電路不用,可以連到GND。</p><p><b>  FPGA的配置過程</b></p><p>  FPGA正常工作時,配置數據存儲在Sta

64、tic Random Access Memory SRAM中,SRAM單元也被稱為配置存儲器configure RAM。SRAM存儲器數據易失,在FPGA上電后,配置數據需要由外部電路驅動重新載入到芯片內的配置RAM中。芯片配置完,寄存器和I/O管腳需要初始化initialization。初始化后芯片才能正常工作。</p><p>  FPGA通電后進入配置模式configuration,接著配置數據以每一個時鐘

65、周期一個數據傳入FPGA。數據傳入完畢后,FPGA進入初始化模式。初始化完畢,進入用戶模式user-mode。當FPGA在配置模式和初始化模式下時,I/O管腳處于高阻態(tài)(或內部弱上拉狀態(tài)),進入用戶模式后,用戶I/O管腳就可以正常工作了。</p><p>  在可見光通信系統中,從光電探測器中探測到的光強信息被輸送入FPGA里,FPGA配置的程序里可以將接收到的光強信息經過程序運算,得出光電探測器所在的坐標并輸出

66、。輸出的接口為UART串行接口,將在下一節(jié)介紹。</p><p>  UART異步串行通信口</p><p>  UART通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter)也稱異步串行通信口,涵蓋了RS232、RS449、RS423、RS422和RS485等接口標準規(guī)范和總線標準規(guī)范,這些標準規(guī)定了通信接口的傳輸速率、電氣特性、機械

67、特性和連接特性等。</p><p>  在實驗中我們所用的標準是RS232。在RS-232標準中,字符是以一個接一個的串行(serial)比特串傳輸的。這種標準需要的傳輸線少,而且配線非常簡單、傳送距離比較遠。編碼格式常用的是異步起停(asynchronous start-stop)格式,這種編碼格式由一個起始比特(bit)開始,后面有七或八個數據比特,然后有奇偶校驗比特,由一或兩個停止比特結束。這種編碼標準,如

68、果要發(fā)送一個字符,那么至少需要十比特,但也有優(yōu)點,那就是傳輸速率、發(fā)送信號的速率全都以十劃分。通常代替異步起停方式可以使用高級數據鏈路控制協議(High-Level Data Link Control或簡稱HDLC)。</p><p>  RS-232標準中,邏輯一和邏輯零電壓級數被定義了,標準傳輸速率和連接器類型也都確定下來了。信號大小在正負3V到15V之間。RS-232規(guī)定接近零的電平無效;邏輯一用負電平表示

69、,有效負電平的信號狀態(tài)稱為傳號(marking),意為OFF;邏輯零用正電平表示,有效正電平的信號狀態(tài)稱為空號(spacing),意為ON。供電電源的不同,可能導致不同的電平,±5V、±10V、±12V和±15V都是可能的。</p><p>  本節(jié)主要介紹可見光通信系統中信號處理模塊FPGA及模塊所使用的串口協議RS232。實驗用需要把信號從FPGA中傳輸出來,傳入到安卓

70、移動平臺里,因而還需對安卓移動平臺做一個介紹,這部分將放在下一節(jié)。</p><p><b>  安卓移動平臺</b></p><p>  為了實現FPGA模塊與安卓的連接,我們需要先了解安卓。本節(jié)介紹安卓系統的特點和架構,及如何搭建安卓開發(fā)平臺。</p><p><b>  安卓系統的特點</b></p>&

71、lt;p>  Android是一種基于Linux內核的操作系統,系統開放源代碼,比較自由,主要應用于移動設備,如智能手機和平板電腦等,是Google公司及手機聯盟聯合開發(fā)的。安卓作為移動平臺上的載體已經越來越深入到我們的生活。</p><p>  安卓平臺有以下五種特點:</p><p>  1)生態(tài)系統的開放性,開發(fā)的平臺允許任何第三方加入。</p><p&g

72、t;  2)打破應用程序邊界。安卓系統中各個應用均可通過標準API調用核心移動設備功能,系統功能可被應用調用,應用也可以被應用調用。</p><p>  3)應用程序平等性。每個應用程序都沒有等級之分,任何應用都能被替換或擴展。</p><p>  4)應用支持WEB嵌入,方便應用程序通過web展示應用內容。</p><p>  5)支持后臺運行。安卓基于L

73、inux內核開發(fā),支持多任務運行。</p><p><b>  安卓系統的架構</b></p><p>  安卓涵蓋核心庫,核心庫里提供JAVA編程語言核心庫里的絕大多數功能。安卓采用了分層的設計構架模式,其系統架構圖如下:</p><p>  圖 31安卓系統架構圖</p><p>  最上一層是核心應用程序。<

74、;/p><p>  每一版Android發(fā)布的同時都會帶有一系列核心應用程序包,里面包含了SMS短信、聯系人管理器、日歷、email、地圖、瀏覽器等。這些應用用JAVA語言編成。除了這些應用,第三方開發(fā)的應用也屬于這一層。</p><p><b>  應用程序框架</b></p><p>  開發(fā)人員可以完全訪問核心應用程序所用的API框架。這種架

75、構設計使組件很容易就可以被重用,任何程序都可以使用功能快。同時這種重用機制也使得應用可以十分方便地被替換。每個應用背后還有一系列服務和系統,如下:</p><p>  豐富而可擴展的視圖(Views)。試圖可用來構建應用程序。涵蓋了網格(grids)、列表(lists)、按鈕(buttons)、文本框(text boxes)甚至是可嵌入式的web瀏覽器。</p><p>  內容提供器(C

76、ontent Providers)。它使應用程序能夠訪問或者共享其他應用程序的數據。</p><p>  資源管理器(Resource Manager)。它能訪問非代碼資源,如本地字符串、圖形和布局文件(layout files)等。</p><p>  通知管理器(Notification Manager)。它讓應用程序可以在狀態(tài)欄中顯示自定義的提示信息。</p><

77、p>  活動管理器(Activity Manager)。它用來管理應用程序生命周期并提供常用的導航回退功能。</p><p><b>  程序庫</b></p><p>  Android有C/C++庫,這些庫可以被調用。它們?yōu)殚_發(fā)者提供了服務。其中核心庫如下:</p><p>  系統C庫——一個從伯克利軟件套件(BSD Berkele

78、y Software Distribution,是Unix的衍生系統)繼承而來的標準C系統函數庫(libc),專門為基于嵌入式(embedded) Linux的設備定制。</p><p>  媒體庫——基于Packet Video Open CORE;該庫能夠支持多種常用音頻、視頻格式,而且支持靜態(tài)圖像文件。編碼格式有多種,包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。</

79、p><p>  Surface Manager——用來管理和顯示子系統,同時提供2D和3D圖層的無縫融合。</p><p>  LibWebCore——一個web瀏覽器引擎,支持Android瀏覽器和可嵌入史web視圖。</p><p>  SGL——底層2D圖形引擎。</p><p>  3D libraries——基于OpenGL ES 1.

80、0 APIs實現;3D硬件加速或高度優(yōu)化的3D軟加速都基于它。</p><p>  FreeType——用于顯示位圖(bitmap)和矢量(vector)字體。</p><p>  SQLite——一個輕型關系型數據庫引擎。</p><p>  Android 運行庫</p><p>  Android擁有一個核心庫,而多數的程序都運行在自己

81、的進程里,各自擁有一個Dalvik虛擬機。Dalvik的存在使多線程運行成為可能。</p><p>  Android的核心系統服務依賴于Linux內核,而Linux內核作為硬件和軟件棧間的抽象層存在。</p><p>  搭建安卓開發(fā)平臺Eclipse</p><p>  為了開發(fā)安卓軟件以顯示接收數據的坐標信息,本節(jié)內容介紹如何安裝Eclipse安卓開發(fā)平臺以及

82、如何在電腦端設置開發(fā)環(huán)境。</p><p>  Eclipse是一個基于Java的開放可擴展開發(fā)平臺。軟件本身只是框架和服務,但通過插件和組件可以構建開發(fā)環(huán)境。Eclipse附帶了一個標準的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。安裝過程如下:</p><p>  安裝Java運行環(huán)境JRE和JDK;</p><p>  安

83、裝Eclipse IDE for Java EE Developers;</p><p>  安裝Android ADT(eclipse插件),如圖:</p><p>  圖32 eclipse軟件截圖</p><p>  配置Android模擬器。由于Eclipse可選用的安卓模擬器較多,實驗中選用Genymotion,以保證運行流暢。</p>&

84、lt;p>  圖33電腦端上的安卓虛擬機截圖</p><p>  至此已經安卓平臺初步搭建好。下一步就是利用開發(fā)平臺開發(fā)出能夠接收數據的軟件。</p><p><b>  安卓軟件開發(fā)</b></p><p><b>  接收模塊</b></p><p>  利用FPGA傳輸光電探測器的位置

85、信號,需要從FPGA模塊傳輸出光電探測器的數據信息,再接入安卓。這里我們需要用JAVA語言編寫串口接收模塊的程序。</p><p>  程序的第一步為設置串口接收數據結構。主要有</p><p>  public void onClick(View v) {</p><p>  if (false == bConfiged) {</p><p&g

86、t;  bConfiged = true;</p><p>  uartInterface.SetConfig(baudRate, dataBit, stopBit, parity, flowControl);</p><p>  savePreference();</p><p><b>  }</b></p><p>

87、;  if (true == bConfiged) {</p><p>  configButton.setBackgroundColor(0xff888888); // color</p><p>  // GRAY:0xff888888</p><p>  configButton.setText("Configured");</p&g

88、t;<p><b>  }</b></p><p><b>  }</b></p><p>  程序的第二步為接收數據模塊,用于接收來自串口的數據。</p><p>  首先需要設計一個handler來接收message。再設計一個函數appendData來讀取數據。ReadDataView用來將數據從字符串

89、型轉化成浮點型,方便顯示。</p><p><b>  關鍵代碼如下:</b></p><p>  /* 創(chuàng)建handler */</p><p>  final Handler handler = new Handler() {</p><p><b>  @Override</b></p&

90、gt;<p>  public void handleMessage(Message msg) {</p><p>  for (int i = 0; i < actualNumBytes[0]; i++) {</p><p>  readBufferToChar[i] = (char) readBuffer[i];}</p><p>  app

91、endData(readBufferToChar, actualNumBytes[0]);</p><p>  readDataView(readBufferToChar, actualNumBytes[0]);}};</p><p>  /* 創(chuàng)建類handler_thread */</p><p>  private class handler_thread e

92、xtends Thread {</p><p>  Handler mHandler;</p><p>  handler_thread(Handler h) {mHandler = h;}</p><p>  public void run() {</p><p>  Message msg;</p><p>  w

93、hile (true) {</p><p>  try {Thread.sleep(200);</p><p>  } catch (InterruptedException e) {}</p><p>  /* uartInterface為FT311UARTInterface.java的類,類中的ReadData函數接收數據 */</p><p

94、>  status = uartInterface.ReadData(4096, readBuffer, actualNumBytes);</p><p>  if (status == 0x00 && actualNumBytes[0] > 0) {</p><p>  msg = mHandler.obtainMessage();</p>&l

95、t;p>  mHandler.sendMessage(msg);}}}}</p><p>  主要的程序在附錄II里</p><p><b>  數據轉換模塊</b></p><p>  由于接收的數據為字符類型,在顯示過程中需要把字符類型轉化為整型類型,以方便顯示。我們規(guī)定為以三個LED燈組成的等邊三角形的一條邊作為x軸建立直角坐標系,

96、三個LED燈的距離為兩兩20cm,從FPGA模塊里傳入的數據精確到小數點后兩位,傳入的數據以XX.XX,XX.XX/n的形式輸入。我們編寫一個新的函數,命名為readDataView。用字符串長度和特殊的記號來辨別輸入信號,信號一旦滿足上述格式,就把字符串轉化成浮點數。</p><p><b>  具體程序如下:</b></p><p>  public void r

97、eadDataView(char[] data, int len) {</p><p>  if (len == 12 && data[2] == 46 && data[5] == 44 && data[8] == 46) {</p><p>  int[] readBufferToInt;</p><p>  rea

98、dBufferToInt = new int[11];</p><p>  for (int i = 0; i < len; i++) {</p><p>  readBufferToInt[i] = data[i] - 48;</p><p><b>  }</b></p><p>  floatDataX =

99、readBufferToInt[0] * 10 + readBufferToInt[1] + readBufferToInt[3] / 10 + readBufferToInt[4] / 100;</p><p>  floatDataY = readBufferToInt[6] * 10 + readBufferToInt[7] + readBufferToInt[9] / 10 + readBufferToI

100、nt[10] / 100;</p><p><b>  }</b></p><p><b>  顯示模塊</b></p><p>  數據接收并轉化之后,還要一部分為軟件接收位置信息并顯示部分,這里我們編寫第二個Activity來顯示,命名為CanvasActivity.java。其中用到的二維畫圖類Canvas畫布。Ac

101、tivity中先獲取屏幕的高度screenHeight、寬度screenWidth、分辨率densityDpi等信息。再畫出坐標軸,其中用到了canvas.drawLine、canvas.drawText等。其中為了使Canvas實時刷新,在程序中我們還用到invalidate()函數。這個函數能使Canvas畫布失效,這時候系統會自動重新調用onDraw函數來重繪Canvas,從而起到刷新的作用。</p><p&g

102、t;  主要的程序在附錄中:</p><p>  本章介紹安卓移動平臺的基本框架以及在電腦端搭建好安卓軟件開發(fā)平臺。這些部署工作做好之后,下一步實驗中需要測試如何能將安卓與串口連接上。</p><p>  安卓設備的連接與通信</p><p>  安卓接口為USB口,而FPGA模塊接口為串口,為了使安卓與FPGA模塊能夠連接到一起,實驗中需要找模塊使它們連接到一塊。

103、</p><p>  通過市場調研及比較,為了實現FPGA模塊與安卓設備的連接,可以選用FT311D模塊。</p><p>  同時,為了測試模塊的連接性,實驗中先用電腦端模擬FPGA模塊與安卓設備連接進行調試。如果安卓可以與電腦端連接并調試,那么安卓與FPGA模塊的連接就容易得多,而且更有利于分辨錯誤的來源。</p><p>  下一節(jié)將會詳細介紹FT311D模塊

104、的基本情況。</p><p><b>  FT311D模塊</b></p><p>  FT311D模塊介紹</p><p>  FT311D模塊是英商飛特帝亞有限公司(FTDI)推出的可用在多介面的安卓主控IC,可即時連接由安卓USB到GPIO、UART、PWM、I2C主控、SPI從或SPI主控介面。FT311D不需要固件,也不需要驅動,有A

105、PK應用程序就可以實現數據通信,不用擔心安卓系統升級,使用簡便。</p><p><b>  模塊芯片圖如下:</b></p><p>  圖41-a FT311D模塊圖正面 圖4-1-b FT311D模塊圖背面</p><p>  FT311D產品特點</p><p>  模塊中含有兩個USB口,一個

106、USB A型口,一個micro USB口。USB口為USB2.0全速HOST,速率可以達到12 Mbit/s。</p><p>  模塊電源口入口處設置了500mA的自恢復保險絲,能起到保護作用。</p><p>  模塊上有四個直徑3mm的安裝孔,利于固定。</p><p>  FT311D的長*寬*高為50mm*29mm*12mm,工作溫度在-40°C

107、至85°C之間,供電電源為3.3V,IO口兼容5V電平。在48MHz下工作時,吸收電流為25mA。待機模式下耗電為128µA。</p><p>  芯片能夠將USB端口橋接到六個不同的接口類型,即GPIO,UART,I2C,SPI從控端和主控端。</p><p>  FT311D在物聯網、儀器儀表、車載、最新網銀U盾、醫(yī)療保健、教育電子等方面具有廣泛應用,是連接智能手機

108、或平板USB轉串口的最佳方案。</p><p>  FT311D模塊可以實現連接安卓的功能,但實驗測試中需要用電腦端來模擬FPGA開發(fā)板與安卓移動設備的連接,因而需要尋找一個模塊實現電腦端通過FT311D模塊來連接到安卓上。</p><p>  FT311D開發(fā)板只能用杜邦線連接,電腦端可以用串口或USB來連接。根據這一點并經過市場調研和比較,選用FT232RL模塊使電腦端的USB接口轉成

109、串口連接到FT311D開發(fā)版上,就可以實現電腦端模擬FPGA,從而連接到安卓設備上來調試軟件。</p><p>  下面我們來介紹一下FT232RL模塊。</p><p><b>  FT232RL模塊</b></p><p>  FT232RL模塊介紹</p><p>  FT232RL模塊是由英商飛特帝亞有限公司FT

110、DI公司推出的實現USB轉TTL/CMOS、GPIO模塊。其模塊圖如下:</p><p>  圖42 FT232RL模塊圖</p><p>  FT232RL產品特點</p><p>  串行接口RS232是單個設備與電腦相連接的最常用的方式,因其硬件連接實現簡單。串行接口RS232是一種低速串行通信中增加通信距離的單端標準。</p><p&g

111、t;  模塊芯片采用FT232RL,數據傳輸穩(wěn)定,波特率最高可達3Mbit/s。FT232RL芯片里含有EEPROM,可用于配置I/O管腳以及存儲USB、VID、PID、序列號和產品描述信息等。</p><p>  模塊采用帶有四個插針的micro USB連接器,數據線與micro USB接口的安卓手機或平板通用,同時還能保證連接器的穩(wěn)固性。</p><p>  模塊使用500mA自恢復保

112、險絲,保障在短路時也不會損害電腦;模塊芯片整合了電平轉換模塊,I/O接口的電平支持5V至2.8V的寬范圍;模塊支持三種供電方式,5V、3.3V和外部輸入1.8至5V,從而能夠以5V、3.3V、2.8V、1.8V的CMOS驅動輸出和TTL輸入。</p><p>  模塊上為每組電壓都設置了濾波電容,在電壓輸出口還設置了一個高品質的鉭電容,保障電源的品質。</p><p>  模塊上設置三個指

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論