浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 單 片 機(jī)

AVR單片機(jī)的通用USB接口模塊設(shè)計(jì)

發(fā)布時(shí)間:2008/8/8 0:00:00 訪問次數(shù):591

1 引言

  usb接口以其數(shù)據(jù)傳輸快、連接簡單、易于擴(kuò)展、支持熱插拔等特點(diǎn)已成為外設(shè)與pc通信的主要方式之一。隨著嵌入式系統(tǒng)的發(fā)展,嵌入式微處理器需增加通用的usb接口,以便實(shí)現(xiàn)與pc等usb主機(jī)系統(tǒng)的通信。針對這樣的需求,這里采用philips公司的usb接口器件pdiusbd12和atmel公司的avr系列單片機(jī)atmega8設(shè)計(jì)一種通用的usb接口模塊。該模塊可方便為各種嵌入式微處理器增加usb接口,從而實(shí)現(xiàn)與usb主機(jī)系統(tǒng)的高速通信。

2 系統(tǒng)硬件設(shè)計(jì)

  該系統(tǒng)模塊的控制核心是avr高速單片機(jī)atmega8。avr單片機(jī)是新一代基于哈佛結(jié)構(gòu)的高速risc微控制器,具有速度快、價(jià)格低、可靠性高,i/o口線驅(qū)動能力強(qiáng)和片內(nèi)集成外設(shè)資源豐富等特點(diǎn),其內(nèi)部集成有可進(jìn)行isp下載編程的flash,eeprom、熔絲位和鎖定位。avr單片機(jī)的isp下載電纜制作簡單、成本低廉,還有免費(fèi)的下載軟件(例如ponyprog)支持。pdiusbd12是一款高性價(jià)比usb接口器件,完全符合usb1.l規(guī)范,易于與各種微處理器接口。

  由于avr單片機(jī)具有高速性,可利用i/o端口線以軟件方式模擬pdiusbd12的時(shí)序,對其讀寫。這種方式可根據(jù)不同的微處理器速度靈活控制pdiusbd12的時(shí)序和地址,無需譯碼電路,從而簡化硬件設(shè)計(jì),降低成本。

  由于atmega8片內(nèi)集成了uart,spi,i2c等接口,該接口模塊可利用這些接口與其他系統(tǒng)通信,使得該接口模塊成為通用的接口轉(zhuǎn)換器。

3 usb固件程序設(shè)計(jì)

  本系統(tǒng)模塊的usb固件程序采用符合ansi c標(biāo)準(zhǔn)的gcc編譯器設(shè)計(jì),結(jié)合分層次的模塊化結(jié)構(gòu),可移植性強(qiáng),只需稍微修改硬件接口層即可將其移植到別的硬件平臺,可重復(fù)利用代碼。

  usb固件程序設(shè)計(jì)是基于狀態(tài)機(jī)和標(biāo)準(zhǔn)的前后臺式程序架構(gòu)。整個(gè)同件程序的模塊化層次結(jié)構(gòu)如圖3所示。首先編寫硬件接口層hal.c和pdiusbd12器件的命令接口層,以供上層模塊調(diào)用。硬件接口層含有對pdiusbd12寫指令和讀寫數(shù)據(jù)的函數(shù),以供上層模塊調(diào)用。當(dāng)cpu不同時(shí),只需修改這些函數(shù)即可。由于cpu訪問pdius-bd12與普通存儲器一樣,只需根據(jù)硬件連接關(guān)系,在硬件抽象層中編寫對pdiusbd12寫指令、寫讀數(shù)據(jù)的函數(shù),供上層調(diào)用即可。實(shí)現(xiàn)pdiusbd12的命令接口層需調(diào)用硬件抽象層函數(shù),供上層模塊調(diào)用。再設(shè)計(jì)前后臺程序及標(biāo)準(zhǔn)設(shè)備請求程序模塊。

  先利用c語言的共用體與位域定義一個(gè)全局狀態(tài)變量如下所示:

  用戶可根據(jù)需要增加相應(yīng)的狀態(tài)標(biāo)志位,如uart,spi,i2c等接口收發(fā)數(shù)據(jù)完成標(biāo)志來滿足各種情況下的需要,然后定義一個(gè)結(jié)構(gòu)體變量用于存放usb的標(biāo)準(zhǔn)設(shè)備請求。

  在前臺主程序中首先初始化全局變量和其他外圍設(shè)備,然后在while(1)的死循環(huán)中檢測狀態(tài)變量值有無變化,根據(jù)不同的狀態(tài)變量值調(diào)用下層的相應(yīng)函數(shù)完成相關(guān)操作。在后臺的中斷服務(wù)程序中,根據(jù)讀取的中斷寄存器值一方面將pdiusbd12接收到的數(shù)據(jù)移入cpu內(nèi)存或?qū)?nèi)存中的數(shù)據(jù)寫入pdiusbd12發(fā)送端點(diǎn)的緩沖區(qū);另一方面根據(jù)具體情況改變狀態(tài)變量值。

  以下給出了前臺主程序的程序代碼:以下為后臺中斷服務(wù)程序:

  當(dāng)前臺主程序檢測到狀態(tài)變量收到setup包事件bevent_flags.bits.setup_packet為1時(shí),該標(biāo)志位清零,再調(diào)用標(biāo)準(zhǔn)設(shè)備請求模塊stdreq.c的control_handler()函數(shù)完成對usb設(shè)備的枚舉。

  設(shè)計(jì)標(biāo)準(zhǔn)設(shè)備請求模塊,首先利用結(jié)構(gòu)體定義usb枚舉所需的各種描述符,以供不同設(shè)備請求使用,其次編寫11個(gè)標(biāo)準(zhǔn)的設(shè)備請求處理函數(shù)。本層請求模塊重要函數(shù)是協(xié)議控制子程序control han-dler(),它根據(jù)controldata中標(biāo)識的不同usb設(shè)備請求類型調(diào)用11個(gè)函數(shù)中的任意一個(gè)。除此之外,本層請示求模塊還實(shí)現(xiàn)中斷服務(wù)程序調(diào)用的控制端點(diǎn)接收與發(fā)送中斷處理函數(shù)。

4 系統(tǒng)集成與應(yīng)用

4.1 pc機(jī)驅(qū)動程序與應(yīng)用程序的設(shè)計(jì)

  利用該系統(tǒng)模塊實(shí)現(xiàn)pc機(jī)通訊,需對pc機(jī)編寫相關(guān)驅(qū)動程序和應(yīng)用程序,可利用driverstudio軟件生成該系統(tǒng)模塊在windows環(huán)境下的驅(qū)動程序。應(yīng)用程序的設(shè)計(jì)可使用諸如vb、vc、delphi以及應(yīng)用普遍的虛擬儀器軟件開發(fā)工具labview等軟件開發(fā)工具,直接調(diào)用驅(qū)動程序生成的動態(tài)鏈接庫中的api函數(shù),可根據(jù)

1 引言

  usb接口以其數(shù)據(jù)傳輸快、連接簡單、易于擴(kuò)展、支持熱插拔等特點(diǎn)已成為外設(shè)與pc通信的主要方式之一。隨著嵌入式系統(tǒng)的發(fā)展,嵌入式微處理器需增加通用的usb接口,以便實(shí)現(xiàn)與pc等usb主機(jī)系統(tǒng)的通信。針對這樣的需求,這里采用philips公司的usb接口器件pdiusbd12和atmel公司的avr系列單片機(jī)atmega8設(shè)計(jì)一種通用的usb接口模塊。該模塊可方便為各種嵌入式微處理器增加usb接口,從而實(shí)現(xiàn)與usb主機(jī)系統(tǒng)的高速通信。

2 系統(tǒng)硬件設(shè)計(jì)

  該系統(tǒng)模塊的控制核心是avr高速單片機(jī)atmega8。avr單片機(jī)是新一代基于哈佛結(jié)構(gòu)的高速risc微控制器,具有速度快、價(jià)格低、可靠性高,i/o口線驅(qū)動能力強(qiáng)和片內(nèi)集成外設(shè)資源豐富等特點(diǎn),其內(nèi)部集成有可進(jìn)行isp下載編程的flash,eeprom、熔絲位和鎖定位。avr單片機(jī)的isp下載電纜制作簡單、成本低廉,還有免費(fèi)的下載軟件(例如ponyprog)支持。pdiusbd12是一款高性價(jià)比usb接口器件,完全符合usb1.l規(guī)范,易于與各種微處理器接口。

  由于avr單片機(jī)具有高速性,可利用i/o端口線以軟件方式模擬pdiusbd12的時(shí)序,對其讀寫。這種方式可根據(jù)不同的微處理器速度靈活控制pdiusbd12的時(shí)序和地址,無需譯碼電路,從而簡化硬件設(shè)計(jì),降低成本。

  由于atmega8片內(nèi)集成了uart,spi,i2c等接口,該接口模塊可利用這些接口與其他系統(tǒng)通信,使得該接口模塊成為通用的接口轉(zhuǎn)換器。

3 usb固件程序設(shè)計(jì)

  本系統(tǒng)模塊的usb固件程序采用符合ansi c標(biāo)準(zhǔn)的gcc編譯器設(shè)計(jì),結(jié)合分層次的模塊化結(jié)構(gòu),可移植性強(qiáng),只需稍微修改硬件接口層即可將其移植到別的硬件平臺,可重復(fù)利用代碼。

  usb固件程序設(shè)計(jì)是基于狀態(tài)機(jī)和標(biāo)準(zhǔn)的前后臺式程序架構(gòu)。整個(gè)同件程序的模塊化層次結(jié)構(gòu)如圖3所示。首先編寫硬件接口層hal.c和pdiusbd12器件的命令接口層,以供上層模塊調(diào)用。硬件接口層含有對pdiusbd12寫指令和讀寫數(shù)據(jù)的函數(shù),以供上層模塊調(diào)用。當(dāng)cpu不同時(shí),只需修改這些函數(shù)即可。由于cpu訪問pdius-bd12與普通存儲器一樣,只需根據(jù)硬件連接關(guān)系,在硬件抽象層中編寫對pdiusbd12寫指令、寫讀數(shù)據(jù)的函數(shù),供上層調(diào)用即可。實(shí)現(xiàn)pdiusbd12的命令接口層需調(diào)用硬件抽象層函數(shù),供上層模塊調(diào)用。再設(shè)計(jì)前后臺程序及標(biāo)準(zhǔn)設(shè)備請求程序模塊。

  先利用c語言的共用體與位域定義一個(gè)全局狀態(tài)變量如下所示:

  用戶可根據(jù)需要增加相應(yīng)的狀態(tài)標(biāo)志位,如uart,spi,i2c等接口收發(fā)數(shù)據(jù)完成標(biāo)志來滿足各種情況下的需要,然后定義一個(gè)結(jié)構(gòu)體變量用于存放usb的標(biāo)準(zhǔn)設(shè)備請求。

  在前臺主程序中首先初始化全局變量和其他外圍設(shè)備,然后在while(1)的死循環(huán)中檢測狀態(tài)變量值有無變化,根據(jù)不同的狀態(tài)變量值調(diào)用下層的相應(yīng)函數(shù)完成相關(guān)操作。在后臺的中斷服務(wù)程序中,根據(jù)讀取的中斷寄存器值一方面將pdiusbd12接收到的數(shù)據(jù)移入cpu內(nèi)存或?qū)?nèi)存中的數(shù)據(jù)寫入pdiusbd12發(fā)送端點(diǎn)的緩沖區(qū);另一方面根據(jù)具體情況改變狀態(tài)變量值。

  以下給出了前臺主程序的程序代碼:以下為后臺中斷服務(wù)程序:

  當(dāng)前臺主程序檢測到狀態(tài)變量收到setup包事件bevent_flags.bits.setup_packet為1時(shí),該標(biāo)志位清零,再調(diào)用標(biāo)準(zhǔn)設(shè)備請求模塊stdreq.c的control_handler()函數(shù)完成對usb設(shè)備的枚舉。

  設(shè)計(jì)標(biāo)準(zhǔn)設(shè)備請求模塊,首先利用結(jié)構(gòu)體定義usb枚舉所需的各種描述符,以供不同設(shè)備請求使用,其次編寫11個(gè)標(biāo)準(zhǔn)的設(shè)備請求處理函數(shù)。本層請求模塊重要函數(shù)是協(xié)議控制子程序control han-dler(),它根據(jù)controldata中標(biāo)識的不同usb設(shè)備請求類型調(diào)用11個(gè)函數(shù)中的任意一個(gè)。除此之外,本層請示求模塊還實(shí)現(xiàn)中斷服務(wù)程序調(diào)用的控制端點(diǎn)接收與發(fā)送中斷處理函數(shù)。

4 系統(tǒng)集成與應(yīng)用

4.1 pc機(jī)驅(qū)動程序與應(yīng)用程序的設(shè)計(jì)

  利用該系統(tǒng)模塊實(shí)現(xiàn)pc機(jī)通訊,需對pc機(jī)編寫相關(guān)驅(qū)動程序和應(yīng)用程序,可利用driverstudio軟件生成該系統(tǒng)模塊在windows環(huán)境下的驅(qū)動程序。應(yīng)用程序的設(shè)計(jì)可使用諸如vb、vc、delphi以及應(yīng)用普遍的虛擬儀器軟件開發(fā)工具labview等軟件開發(fā)工具,直接調(diào)用驅(qū)動程序生成的動態(tài)鏈接庫中的api函數(shù),可根據(jù)

相關(guān)IC型號

熱門點(diǎn)擊

 

推薦技術(shù)資料

硬盤式MP3播放器終級改
    一次偶然的機(jī)會我結(jié)識了NE0 2511,那是一個(gè)遠(yuǎn)方的... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!