• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于XR16L788的多串口擴展及其應用

      2016-03-22 06:56:23王淑平
      電子器件 2016年1期

      王淑平,楊 衛(wèi)*,侯 爽

      (1.中北大學儀器科學與動態(tài)測試教育部重點實驗室,太原030051;2.中北大學電子測試技術重點實驗室,太原030051)

      ?

      基于XR16L788的多串口擴展及其應用

      王淑平1,2,楊衛(wèi)1,2*,侯爽1,2

      (1.中北大學儀器科學與動態(tài)測試教育部重點實驗室,太原030051;2.中北大學電子測試技術重點實驗室,太原030051)

      摘要:詳細介紹了基于高性能八通道UART控制器芯片XR16L788的串口擴展通信方法,并完成其在S3C2410上的驅(qū)動程序,將其應用在了一種具有定位功能的新型遙控終端上,解決了該設備接口不足的問題,使遙控終端可以一方面利用GPS、電子羅盤、激光測距儀提供的信息實現(xiàn)對目標的被動定位,另一方面利用無線模塊發(fā)送控制命令接受反饋信息。實際使用表明,該方法設計可靠,在滿足原有要求的同時,還預留了接口以方便擴展其它功能。

      關鍵詞:XR16L788;串口擴展;S3C2410;遙控終端;被動定位

      隨著計算機技術的不斷發(fā)展,嵌入式設備的應用也越來越廣泛,嵌入式設備的串口是最常用、最簡單的接口,串行接口憑借其接口簡單、成本較低、占用資源少等特點而被廣泛應用在各種設備中[1-2]。而嵌入式設備實際使用過程中因為外接設備較多常常會出現(xiàn)串口不足的問題,本設計的遙控終端為了實現(xiàn)定位功能需要同時與GPS、電子羅盤、激光測距儀等通信,其使用的S3C2410處理器自身帶有3路串口,但串口0用于系統(tǒng)調(diào)試信息輸出,實際可用只有兩路,無法滿足設計要求需要的串口數(shù),為了實現(xiàn)多串口通信需要進行串口擴展設計。常用的方法有軟件模擬法和硬件擴展法。軟件模擬法因無法直觀看到實驗效果且開銷大、誤碼率高而不予采用[3-4]。采用硬件擴展法有3種方案:(1)利用并口擴展串口,并口轉(zhuǎn)串口實現(xiàn)起來軟硬件較復雜,擴展出的串口穩(wěn)定性差,容易受到外界環(huán)境干擾;(2)利用USB口擴展串口,使用USB/串口轉(zhuǎn)換器,可擴展最多16路串口,性能可靠,但體積大,且價格隨串口數(shù)增加顯著提高;(3)串口擴展串口,該方法簡單易行,選擇串口擴展芯片是擴展設計的關鍵[5-6]。

      本設計中采用方案3,擴展芯片是EXAR的XR16L788。XR16L788通用異步接收/發(fā)射器是一款8通道的UART控制器芯片。XR16L788包含片內(nèi)振蕩器(XTAL1和XTAL2),可為每一個通道的可編程波特率發(fā)生器(BRG)提供系統(tǒng)時鐘,因此滿足GPS、電子羅盤等設備對不同波特率的通信要求。另外,它還包括一個通用中斷輸出引腳與通用中斷源寄存器,為所有8個UART通道提供完整的狀態(tài)指示,這可以加快中斷分析,串口擴展的硬件電路設計完成后在S3C2410核心板下并不能直接驅(qū)動使用,本文還介紹了串口擴展驅(qū)動程序的設計,使擴展的串口能正確傳輸數(shù)據(jù)[7]。

      1 擴展電路硬件設計

      1.1XR16L788芯片

      EXAR的XR16L788是一種高度集成的器件,設計用于具有高帶寬需求的通信系統(tǒng),工作電壓為3.3 V(+5 V的耐壓)。XR16L788擁有幾個創(chuàng)新性的特性,其中最突出的是通用中斷源寄存器的設計,它用于使軟件設備驅(qū)動程序更有效,從而在多通道系統(tǒng)降低CPU的帶寬需求。

      此外,該器件的八個通道都有各自的UART通道控制、軟復位、同步寄存器初始化、帶16種可選滯后的RTS/CTS或DTR/DSR硬件流控和帶可編程延時滯后的RS-485半雙工方向控制輸出。8 bit數(shù)據(jù)總線配置方面支持基于Intel或Motorola的系統(tǒng)設計。該芯片還具有64 byte的發(fā)送和接收FIFO(先進先出)以及FIFO byte計數(shù)器、可編程的TX和RX FIFO觸發(fā)字節(jié)。它的最高串行數(shù)據(jù)速率可達6.25 Mbit/s。

      1.2串口擴展設計

      圖1為串口擴展電路圖,XR16L788的8 bit雙向數(shù)據(jù)引腳D0~D7與F020的P7口相連;A0~A7地址引腳與C8051F020的P6口相連,其中A0~A3用于選擇各個通道的16個配置寄存器,A4~A5用于通道UART0到UART7的選通,A7用于選擇全局設備配置寄存器;IOR#、IOW#引腳與F020的P4.6、P4.7外部存儲器讀寫選通引腳相連,并將XR16L788映射在F020的片外數(shù)據(jù)地址空間中;CS#片選與P1.2相連,INT#與P0.4相連,它為漏極開路輸出,所以需要一個外部上拉電阻[8-9]。

      其它引腳TMRCK、ENIR等接地,16/68#(Intel 和Motorola總線接口選通引腳)接高電平。由于XR16L788未內(nèi)置晶振所以需在XTAL1、XTAL2引腳外接晶振單元。

      圖1 串口擴展電路圖

      2 多串口驅(qū)動程序?qū)崿F(xiàn)

      2.1驅(qū)動程序設計過程

      Linux中的驅(qū)動設計是Linux開發(fā)中十分重要的部分,它是應用程序與硬件之間的一個中間軟件層[10]。嵌入式Linux系統(tǒng)采用模塊化方式管理設備驅(qū)動,并且將各種設備映射成設備文件,向開發(fā)人員提供統(tǒng)一且簡單易用的接口,達到簡化應用程序開發(fā)和屏蔽不同硬件設備的目的。Linux的驅(qū)動開發(fā)調(diào)試有兩種方法,一種是直接編譯到內(nèi)核,再運行新的內(nèi)核來測試;二是編譯為模塊的形式,單獨加載運行調(diào)試。第一種方法效率低,但在某些場合是惟一的方法,模塊方式調(diào)試效率高,可以使用insmod工具將編譯的模塊直接插入內(nèi)核,還可以用rmmod從內(nèi)核中卸載模塊,從而不需要重新啟動內(nèi)核,使調(diào)試效率大大提高[11]。以下是實現(xiàn)的具體過程:

      (1)在S3C2410核心板的內(nèi)核的頭文件即ker?nelincludeasm-armarch-s3c2410 smdk.h增加中斷及片選地址宏定義

      #define RUIJI_UART_IRQIRQ_EINT7

      /*exar uart,nGCS2 */

      #define pRUIJI_ UART_BASE

      0x10000000

      #define vRUIJI_UART_ BASE 0xd1000000

      (2)在kernelarcharmmach-s3c2410smdk.c文件中增加CS2串口芯片內(nèi)存映射地址表

      Static struct map_desc smdk_io_desc[]__initdata={

      /* virtual physical length domain r w c b */

      {vCS8900_BASE,pCS8900_BASE,0x00100000,DOMAIN_IO,

      0,1,0,0},

      {vRUIJI_UART_BASE,pRUIJI_UART_BASE,0x01000000,

      DOMAIN_IO,0,1,0,0},

      LAST_DESC

      };

      (3)在串口驅(qū)動文件即kerneldriversserial中添加XR16L788驅(qū)動文件exar_serial.c及頭文件ex?ar_serial_reg.h

      完成上述設計后,就可使用make zImage重新編譯內(nèi)核映像文件,也可以把(3)中的驅(qū)動文件編譯成exar_serial.o模塊文件,使用過程中可使用ins?mod和rmmod命令分別動態(tài)鏈接和去除該模塊。

      2.2擴展串口的通信

      使用XR16L788進行串行通信前,應先對其初始化。XR16L788的初始化程序流程圖如下:

      圖2 XR16L788初始化流程圖

      首先,寫RESET寄存器,軟件重置各個通道,寄存器的bit0~bit7位置分別對應UART0~UART7。重置各個通道時,要把REG2寄存器bit0位置1。需要注意的是,在對設備進行讀操作時REG2寄存器的bit2位置必須為0。然后,設置各通道串行通信的數(shù)據(jù)格式。LCR是數(shù)據(jù)格式控制寄存器,bit1~bit0位指定數(shù)據(jù)位長度,數(shù)據(jù)位長度可根據(jù)需要設置為5 bit~8 bit,bit2位選擇停止位個數(shù),bit5~bit3位置是奇偶校驗選擇位,bit6為中斷控制位(邏輯1時允許產(chǎn)生輸出中斷)。通過設置LCR寄存器來確定各通道的數(shù)據(jù)格式,來滿足不同的通信要求。

      圖3 波特率發(fā)生器

      最后為波特率的設置。XR16L788的每個UART通道都有自己的波特率發(fā)生器,LCR寄存器的bit7位(分頻允許位)、MCR寄存器的bit7位(4分頻允許位)及DLL&DLM寄存器共同設置各通道的波特率。DLL&DLM的值在上電后是隨機的,因此,在使用前必須在初始化過程中對其編程。DLL&DLM的值可由如下公式得出:

      Divisor=(clockfrequency/prescaler)/(serialdataratex8)

      初始化完成之后,就是用串口的打開、讀、寫和關閉函數(shù)進行數(shù)據(jù)的傳輸[12]。

      3 應用設計

      3.1系統(tǒng)總體設計

      本設計中擴展電路被應用在具有定位功能的新型遙控終端上。上圖為遙控終端的結構框圖:串口擴展電路通過RS-232接口電路與ARM主控模塊通信,ARM主控模塊用來數(shù)據(jù)處理、圖像顯示及與上位機通信。ARM主控模塊的處理器選用三星公司ARM9系列S3C2410處理器,外圍電路主要由FLASH和SRAM存儲單元、電源供電電路、復位電路、晶振、JATG調(diào)試口等構成[13]。

      圖4 遙控終端結構框圖

      圖5 RS-232接口電路

      3.2定位程序設計

      系統(tǒng)對目標單元的定位可得到目標的絕對坐標和相對坐標。電子羅盤和激光測距儀提供被測目標相對測量點的距離、垂直角和水平角等,在空間直角坐標系下,以測量點為坐標原點,利用距離、水平角和垂直角等參數(shù)可得到被測目標的相對坐標。GPS使用的是WGS-84坐標系,利用被測目標的相對坐標對提供的經(jīng)緯度信息進行坐標變換,即可得到當前位置的絕對坐標。

      完成對每個目標單元的定位后,將定位數(shù)據(jù)存儲到非易失性的存儲器中,并通過無線網(wǎng)絡把定位坐標傳送至每個目標單元。使得各個目標單元了解自己所在的位置。

      3.3定位測試

      在矩形區(qū)域內(nèi),把5個目標按照五邊形進行布置,邊長約為10 m。以遙控終端為坐標原點,分別測量各個目標的距離和方位角,每個目標測量兩次,并與實際的測量值進行對比。

      圖6 定位程序流程圖

      實驗結果如表1所示。

      表1 測試數(shù)據(jù)

      4 結束語

      本文介紹的多串口擴展方法通過實驗表明能夠滿足項目的主要設計指標,目標定位誤差小于0.2 m?;赬R16L788的串口擴展設計在結構上、功能上具有良好的穩(wěn)定性、可靠性,全系統(tǒng)數(shù)據(jù)通信正常、誤碼率低,很好地解決了系統(tǒng)接口不足的問題,這對今后嵌入式串口擴展有一定的借鑒意義。

      參考文獻:

      [1]于海彬,王斌,陳興林,等.基于Linux的SC16IS752的串口驅(qū)動程序設計[J].計算機應用,2013(12):36-41.

      [2]楊宗霖,姚速瑞,張浩峰.衛(wèi)星/慣性組合定位系統(tǒng)中的數(shù)據(jù)采集單元設計[J]. 2015,2(38):452-457.

      [3]岳曉慶,張其善,常青.串口擴展技術在嵌入式系統(tǒng)中的實現(xiàn)[J].電子測量技術,2006,29(2):45-46.

      [4]楊光友,朱宏輝.單片微型計算機原理及接口[M].北京:中國水利水電出版社,2006:22-41.

      [5]劉小芳.單片機的多串口擴展技術的設計[J].計算機測量與控制,2004,12(11):1088-1090.

      [6]張偉,李文魁,陳永冰.基于GM814X的單片機串口擴展及其應用[J].電子技術應用,2012,38(9):96-99.

      [7]曹富祿.基于XR16L78x的多串口擴展方案優(yōu)勢分析[J].現(xiàn)代電子技術,2011,34(24):163-170.

      [8]朱思榮,周萬里,畢春元,等. C8051F120單片機串口擴展與通訊設計[J].山東科學,2013,26(1):69-73.

      [9]潘琢金. C8051Fxxx高速SOC單片機原理及應用[M].北京:北京航空航天的學出版社,2002:12-22.

      [10]宋寶華. Linux設備驅(qū)動詳解[M].北京:人民郵電出版社,2010:112-126.

      [11]羅苑棠,楊宗德.嵌入式Linux應用系統(tǒng)開發(fā)實例精講[M].北京:電子工業(yè)出版社,2007:223-245.

      [12]宋寶華,何昭然,史海濱,等.精通Linux設備驅(qū)動程序開發(fā)[M].北京:人民郵電出版社,2010:187-221.

      [13]魏永明. LINUX設備驅(qū)動程序[M]. 3版.北京:中國電力出版社,2005:226-252.

      王淑平(1990-),男,漢族,江西吉安人,中北大學儀器與電子學院碩士,主要研究方向為測試計量技術,935924529@qq.com;

      楊衛(wèi)(1957-),男,漢族,山西太原人,研高工,研究方向為微納米器件、儀器與測試技術、微系統(tǒng)及集成技術、網(wǎng)域化微武器系統(tǒng),yangwei@nuc.edu.cn。

      The Fire Alarm System of Wind Turbine Engine Room Based on ZigBee*

      WU Chunming,YANG Tao*,ZHANG Jinqiang

      (Information Engineering College Northeast Dianli University,Jilin Jilin 132012,China)

      Abstract:In order to solve the loss of fire hidden trouble in the wind turbine,we designed a fire alarm system of wind turbine engine based on ZigBee. The system consists of the collection nodes,the coordination node and the monitoring center node. We use CC2530 as the processor,which controls the location of the fire hidden trouble in wind turbine engine room,collecting the data through the data collection nodes and sending them to monitoring cen?ter by GPRS network. According to the experiment and test results,the system can work stability,high reliability,early warning accuracy and monitoring of the regional operations of each time period effectiveness,thus it can guar?antee the wind turbine running security and stability.

      Key words:wind turbine engine room;fire prevention;CC2530;GPRS network;software platform

      doi:EEACC:814010.3969/j.issn.1005-9490.2016.01.044

      收稿日期:2015-03-25修改日期:2015-05-16

      中圖分類號:TN993

      文獻標識碼:A

      文章編號:1005-9490(2016)01-0211-05

      江阴市| 昭觉县| 河西区| 云和县| 察雅县| 阿勒泰市| 长宁县| 平武县| 崇仁县| 华坪县| 冀州市| 葫芦岛市| 名山县| 若尔盖县| 无锡市| 德钦县| 蕲春县| 巩留县| 九龙坡区| 高唐县| 成安县| 班玛县| 迭部县| 紫阳县| 视频| 喀喇| 乌兰浩特市| 新建县| 伊宁市| 延吉市| 新野县| 佛冈县| 会理县| 武威市| 喀什市| 靖宇县| 锡林浩特市| 崇文区| 平泉县| 大港区| 祥云县|