基于A(yíng)VR USB接口的溫度測量系統下位機設計
0引言
本文引用地址:http://dyxdggzs.com/article/173835.htm近年來(lái),隨著(zhù)集成電路以及芯片制造技術(shù)的不斷發(fā)展,不同的USB通信芯片不斷涌現,目前典型的USB通信芯片有CH375、PDIUSBD12等,這些器件的特點(diǎn)是功能較為強大,但價(jià)格較高,很難在中低價(jià)位的產(chǎn)品開(kāi)發(fā)中使用。而AVR USB技術(shù)則是利用高性能的8位RISC架構的AVR單片機的IO口來(lái)模擬USB的通信端口,并由軟件來(lái)實(shí)現USB通信協(xié)議,以將普通的AVR單片機模擬成一個(gè)USB低速設備,從而實(shí)現AVR單片機與計算機之間的通信和控制。盡管這種方式只能實(shí)現低速傳輸,但對常用數據量不是十分巨大的系統而言,它已經(jīng)足夠使用了,且其速度遠遠高于傳統的串口傳輸速度,因而在產(chǎn)品開(kāi)發(fā)中具有廣闊的應用前景。本文便是利用AVR USB技術(shù)來(lái)實(shí)現對溫度的測量和顯示功能。
下位機軟件設計及其實(shí)現可基于WINAVR編程環(huán)境,代碼則可利用C語(yǔ)言實(shí)現。AVR單片機主要完成兩個(gè)功能:溫度測量和數據傳送。溫度測量主要是對電壓信號進(jìn)行采樣,以確定溫度的離散數值。傳送數據則是將測量的數據通過(guò)AVR所模擬的USB端口傳至PC端,以便PC端進(jìn)行數據的顯示和處理。其主要流程如圖1所示。

2軟件功能的實(shí)現
2.1溫度數據的采集
2.1溫度數據的采集
ATmega8內含一個(gè)10位逐次逼近型ADC。該ADC可與一個(gè)8通道的模擬多路復用器連接,以對來(lái)自端口C的8路單端輸入電壓進(jìn)行采樣。單端電壓輸入以0 V(GND)為基準。AD轉換的時(shí)序圖如圖2所示。

對于連續AD數據采集,可采用查詢(xún)法和中斷法,該程序中采用的是中斷法,即一次AD轉換結束后便產(chǎn)生中斷。設計時(shí)可利用如下函數對電壓數值進(jìn)行采集:
首先定義全局變量Value,儲存所測量到的溫度數值,并將該值作為USB端口的發(fā)送數值。

首先定義全局變量Value,儲存所測量到的溫度數值,并將該值作為USB端口的發(fā)送數值。

2.2 USB數據傳輸
為了利用ATMEGA8模擬軟USB,應在WINAVR將AVRUSB的文件配置文件夾USBDRV放置在源文件目錄下,在該目錄下,編程中所需要的文件如表1所列。
為了利用ATMEGA8模擬軟USB,應在WINAVR將AVRUSB的文件配置文件夾USBDRV放置在源文件目錄下,在該目錄下,編程中所需要的文件如表1所列。

該設計只要對usbconfig.h的內容進(jìn)行配置,便可減小代碼量。其主要參數配置如表2所列。
一般情況下,每種USB設備都有一個(gè)PID和VID。其中VID是生產(chǎn)商的代號,PID是產(chǎn)品的代號,每個(gè)代號都是一個(gè)雙字節的整數。PID和VID不能隨意設置,它是由USB標準協(xié)會(huì )進(jìn)行分配的(0x16C0、0x05DC),并在用戶(hù)配置文件中要遵循低位在前高位在后的原則。
一般情況下,每種USB設備都有一個(gè)PID和VID。其中VID是生產(chǎn)商的代號,PID是產(chǎn)品的代號,每個(gè)代號都是一個(gè)雙字節的整數。PID和VID不能隨意設置,它是由USB標準協(xié)會(huì )進(jìn)行分配的(0x16C0、0x05DC),并在用戶(hù)配置文件中要遵循低位在前高位在后的原則。
2.3 USB數據傳輸的接口函數
(1)初始化函數
使用AVRUSB前,通常都要通過(guò)調用初始化函數usbInit ()來(lái)對USB端口進(jìn)行初始化,調用該函數之前,考慮到該程序可能由其他程序段跳轉而來(lái),因此,初始化之前,一般要將USB端口進(jìn)行重新復位,復位只需要將D-和D+端口的電平拉低即可,利用如下語(yǔ)句便可實(shí)現上述功能:
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論