• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AVR USB接口的溫度測量系統下位機設計

    基于AVR USB接口的溫度測量系統下位機設計

    作者: 時間:2009-03-25 來源:網絡 收藏

    0引言

    本文引用地址:http://www.czjhyjcfj.com/article/173835.htm

    近年來,隨著集成電路以及芯片制造技術的不斷發展,不同的通信芯片不斷涌現,目前典型的通信芯片有CH375、PDID12等,這些器件的特點是功能較為強大,但價格較高,很難在中低價位的產品開發中使用。而 USB技術則是利用高性能的8位RISC架構的的IO口來模擬USB的通信端口,并由軟件來實現USB通信協議,以將普通的模擬成一個USB低速設備,從而實現AVR與計算機之間的通信和控制。盡管這種方式只能實現低速傳輸,但對常用數據量不是十分巨大的而言,它已經足夠使用了,且其速度遠遠高于傳統的串口傳輸速度,因而在產品開發中具有廣闊的應用前景。本文便是利用AVR USB技術來實現對和顯示功能。

    1 機軟件流程

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

    2軟件功能的實現
    2.1溫度數據的采集
    ATmega8內含一個10位逐次逼近型ADC。該ADC可與一個8通道的模擬多路復用器連接,以對來自端口C的8路單端輸入電壓進行采樣。單端電壓輸入以0 V(GND)為基準。AD轉換的時序圖如圖2所示。
    對于連續AD數據采集,可采用查詢法和中斷法,該程序中采用的是中斷法,即一次AD轉換結束后便產生中斷。時可利用如下函數對電壓數值進行采集:
    首先定義全局變量Value,儲存所測量到的溫度數值,并將該值作為USB端口的發送數值。
    2.2 USB數據傳輸
    為了利用ATMEGA8模擬軟USB,應在WINAVR將AVRUSB的文件配置文件夾USBDRV放置在源文件目錄下,在該目錄下,編程中所需要的文件如表1所列。
    只要對usbconfig.h的內容進行配置,便可減小代碼量。其主要參數配置如表2所列。
    一般情況下,每種USB設備都有一個PID和VID。其中VID是生產商的代號,PID是產品的代號,每個代號都是一個雙字節的整數。PID和VID不能隨意設置,它是由USB標準協會進行分配的(0x16C0、0x05DC),并在用戶配置文件中要遵循低位在前高位在后的原則。
    2.3 USB數據傳輸的函數
    (1)初始化函數
    使用AVRUSB前,通常都要通過調用初始化函數usbInit ()來對USB端口進行初始化,調用該函數之前,考慮到該程序可能由其他程序段跳轉而來,因此,初始化之前,一般要將USB端口進行重新復位,復位只需要將D-和D+端口的電平拉低即可,利用如下語句便可實現上述功能:
    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 南城县| 怀仁县| 墨玉县| 哈巴河县| 赤城县| 锦屏县| 赤壁市| 上林县| 武鸣县| 武宁县| 武清区| 涞水县| 通江县| 封开县| 崇仁县| 宜城市| 防城港市| 德安县| 沙坪坝区| 虎林市| 沙坪坝区| 隆子县| 大石桥市| 建瓯市| 沙洋县| 肇东市| 阳新县| 泌阳县| 林甸县| 镇沅| 江城| 镇平县| 井陉县| 道孚县| 柳河县| 南安市| 澄江县| 江北区| 开阳县| 炉霍县| 孝昌县|