国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于AVR USB接口的溫度測量系統(tǒng)設計

2011-11-03 02:24裴文蓮余小昕
中國新技術新產(chǎn)品 2011年14期
關鍵詞:驅(qū)動程序端口編程

裴文蓮 余小昕

(安徽理工大學計算機學院,安徽 淮南 232001)

1 、引言

ATmega8是基于增強的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進的指令集以及單時鐘周期指令執(zhí)行時間,AT-mega8的數(shù)據(jù)吞吐率高達1 MIPS/MHz。USB接口以其數(shù)據(jù)傳輸快、連接簡單、易于擴展、支持熱插拔等特點已成為外設與PC通信的主要方式之一。靈活輕便的Atmega8可以利用中斷和串行通信技術實現(xiàn)模擬USB通信。

2 、系統(tǒng)硬件設計

2.1 硬件總體設計

設計所用的傳感器是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器DS18B20,具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測溫分辨率可達0.0625℃。 核心模塊是AVR高速單片機Atmega8。AVR單片機是新一代基于哈佛結(jié)構(gòu)的高速RISC微控制器,具有速度快、價格低、可靠性高,I/O口線驅(qū)動能力強和片內(nèi)集成外設資源豐富等特點,其內(nèi)部集成有可進行ISP下載編程的Flash,EEPROM、熔絲位和鎖定位。AVR單片機的ISP下載電纜制作簡單、成本低廉,還有免費的下載軟件 (例如PonyProg)支持。Atmega8內(nèi)部集成了8路10位的ADC,外部中斷通過引腳INT0和INT1觸發(fā)。電路板的硬件資源中附加一個USB接口,便于主從之間進行數(shù)據(jù)交換。

2.2 "軟USB"的實現(xiàn)方法

在不是使用USB控制器的情況下,實現(xiàn)AVR單片機進行類似USB形式的數(shù)據(jù)傳輸,需要在硬件上加以添加器件。如圖一,在Data-上接一個阻值為1.5K的上拉電阻。該上拉電阻實現(xiàn)的是低速USB數(shù)據(jù)傳輸。AVR單片機由于實現(xiàn)的是"軟USB",由于本身處理能力所限,只能實現(xiàn)低速數(shù)據(jù)傳輸,故該上拉電阻不可缺省。此外,系統(tǒng)要使用12 MH2晶振,這樣,經(jīng)過8分頻后才能使用USB低速1.5 MB/s的數(shù)據(jù)傳輸速率。

由于USB接口的電壓數(shù)值為3.6 V。而電腦USB端口的輸出電壓為5 V,因此,為了電平匹配,本電路特使用3.6 V穩(wěn)壓二極管D1、D2來分別與D一、D+相連,其中兩端口分別通過68Ω的電阻與PD4以及PD2相連;

因為涉及到外設,所以需要安裝驅(qū)動。本文所選擇的驅(qū)動程序為LibUSB-Win32。該驅(qū)動程序可應用于Win2000、WinXp等Windows操作系統(tǒng)上。并允許用戶通過直接調(diào)用函數(shù)的方式對Windows系統(tǒng)上的任意一個USB設備進行訪問。該驅(qū)動程序具有以下特點:能夠任意與已安裝的USB設備進行通信;可用作自己開發(fā)USB設備的驅(qū)動程序;支持批量和中斷傳輸;支持USB規(guī)范的所有標準設備請求;支持USB設備制造商的自定義請求。

2.3 原理圖設計

針對本設計所要完成的任務,以Atmega8為核心,設計電路圖并制作開發(fā)板。原理圖的繪制分成兩層來設計:顯示部分(DISPLAY)和微處理器部分 (MCU)。DISPLAY層主要有LED和LCD顯示器;MCU層主要有Atmega8核心器件、USB接口電路、AD轉(zhuǎn)換部分、相應的串口以及必要的周邊電路。MCU層中的USB接口與微處理器的連接如圖一所示。

圖一USB與微處理器的連接示意圖

3 、軟件部分設計

使用GCC可以方便的編譯avr程序

3.1 系統(tǒng)流程

軟件設計及其實現(xiàn)是基于WINAVR編程環(huán)境,代碼則利用C語言實現(xiàn)。AVR單片機主要完成兩個功能:溫度測量和數(shù)據(jù)傳送。溫度測量主要是對電壓信號進行采樣,以確定溫度的離散數(shù)值。傳送數(shù)據(jù)則是將測量的數(shù)據(jù)通過AVR所模擬的USB端口傳至PC端,以便PC端進行數(shù)據(jù)的顯示。其主要流程如圖二所示。

3.2 溫度數(shù)據(jù)的采集

ATmega8內(nèi)含一個10位逐次逼近型ADC。該ADC可與一個8通道的模擬多路復用器連接,以對來自端口C的8路單端輸入電壓進行采樣。單端電壓輸入以0 V(GND)為基準。對于連續(xù)AD數(shù)據(jù)采集,采用的是中斷法與微處理器進行通信,即一次AD轉(zhuǎn)換結(jié)束后便產(chǎn)生中斷。設計時可利用如下函數(shù)對電壓數(shù)值進行采集:首先定義全局變量Value,儲存所測量到的溫度數(shù)值,并將該值作為USB端口的發(fā)送

3.3USB數(shù)據(jù)傳輸

為了利用ATMEGA8模擬"軟USB",在搭建好了開發(fā)環(huán)境的前提下,在WINAVR將AVRUSB的文件配置文件夾USBDRV放置在源文件目錄下。USB接口的函數(shù)的實現(xiàn):

(1)初始化函數(shù):使用AVRUSB前,通常都要通過調(diào)用初始化函數(shù)usbInit()來對USB端口進行初始化,調(diào)用該函數(shù)之前,考慮到該程序可能由其他程序段跳轉(zhuǎn)而來,因此,初始化之前,一般要將USB端口進行重新復位,復位只需要將D-和D+端口的電平拉低即可;

(2)用戶程序的主循環(huán)中需要定期調(diào)用USB事件處理函數(shù)。USB事件處理函數(shù)在沒有USB事件需要處理時將直接返回,否則將調(diào)用內(nèi)部函數(shù)來進行相應的事件處理,最后再將數(shù)據(jù)傳遞到用戶接口函數(shù)中,用死循環(huán)實現(xiàn)即可。一次USB通信的超時時間是50ms。所以,在編程時應注意其他事件不要占用太長的時間。

(3)事件接口函數(shù):在用戶程序中,需要編寫USB用戶事件接口函數(shù),以完成USB通信。AVRUSB將用戶接口簡化為以下3個函數(shù):usbFounctionWrite ()、usbFounctionRead()、usb-FounctionSetup(),參照功能參數(shù)表,將相應位置1或0。

(4)編譯文件的配置 在WINAVR軟件環(huán)境下,還需要配置MakeFile,以用于編譯編程文件。

結(jié)束語

基于AVR Atmege8 USB技術的溫度測量和顯示系統(tǒng)由于使用了一體的軟USB技術,其硬件電路設計更加小巧穩(wěn)定。經(jīng)使用和測試證明:該系統(tǒng)具有性能穩(wěn)定、價格低廉等特點。重要的是,本系統(tǒng)提供了一種低成本的USB設計方案,同時較詳細的提供了溫度測量系統(tǒng)設計流程和部分代碼,在GCC環(huán)境下用C語言實現(xiàn)所有的軟件設計很簡單易行。從而為中低成本的USB設備開發(fā)提供了一個較好的思路。

[1]張洪,董秀成.基于AVR單片機的通用USB接口模塊設計.國外電子元器件,2008(05).

[2]佟長福.AVR單片機GCC程序設計.北京航空航天大學出版社,2006.

[3]孫福文.基于AVR USB接口的溫度測量系統(tǒng)下位機設計.電子元器件應用,2008(11).

[4]王晶,邱建東,甘艷.基于AVR的USB通信模塊設計.鐵路計算機應用,2009(5).

猜你喜歡
驅(qū)動程序端口編程
編程,是一種態(tài)度
編程小能手
紡織機上誕生的編程
計算機硬件設備驅(qū)動程序分析
端口阻塞與優(yōu)先級
初識電腦端口
8端口IO-Link參考設計套件加快開發(fā)速度
基于MPC8280的CPU單元與內(nèi)部總線驅(qū)動程序設計