新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 通用串行總線在分組無線網(wǎng)中的應用

        通用串行總線在分組無線網(wǎng)中的應用

        作者: 時間:2012-02-04 來源:網(wǎng)絡 收藏

        3.2 PRU和接口設計

        接口電路圖如圖2所示。

        圖2中N9602上的引腳D+通過上拉電阻接在3.3V電壓上,這樣就選定為全速(12Mbps)設備。如果D-被上拉,則設置為低速(1.5Mbps)設備。

        單片機可以通過8位并行接口AD[7:0]或MICROWIRE接口與USBN9602連接。對于并行接口,有兩種模式可供選擇:復用方式和非復用方式。這兩種方式的選擇通過設置MODE0和MODE1兩引腳的電平高低來實現(xiàn)。這里使用復用方式連接USBN9602和8051單片機。選擇該方式時,MODE0和MODE1分別接高電平和低電平。該方式下的數(shù)據(jù)傳輸用到了USBN9602上的控制引腳RD、WR、片選信號CS、地址鎖存使能信號ALE和雙向的地址/數(shù)據(jù)總線AD[7:0]。引腳RD、WR和ALE分別與8051上相應的引腳相連,片片信號CS由8051輸出的高8位地址經(jīng)過解碼器產(chǎn)生。當ALE為高電平時,AD[7:0]上的地址信號被鎖存到USBN9602內(nèi)的地址寄存器中,再當RD或WR有效時,數(shù)據(jù)被讀出或者寫入。通過這種方式,USBN9602中的任何一個寄存器都可以被直接訪問。由于這種讀寫時序與8051讀寫外部數(shù)據(jù)寄存器的時序相同,因此可以把USBN9602中需要讀寫的寄存器當作普通的外部數(shù)據(jù)寄存器來對待,在接口程序中直接用MOVX指令來進行操作。

        另外USBN9602還提供了一個中斷輸出,它用來引起單片機的中斷。中斷方式可以通過編程設置,將這個中斷輸出引腳直接與8051單片機上的外部中斷引腳INT1相連。由于8051的餐部中斷輸入為低有效,所以USBN9602的中斷輸出也應通過編程設置為低有效。



        3.3 PRU的USB接口程序設計

        USB接口的程序包括三個基本的部分:①初始化,這部分程序用來對單片機和所有外圍電路進行初始化;②主循環(huán),它可以被中斷;③中斷句柄,對中斷進行處理,并且對時間敏感。這幾部分均是嵌入在PRU的網(wǎng)絡控制程序中的。

        初始化程序中包含對USBN9602的初始化。①進行軟件復位,它不影響時鐘輸出,相當于一個硬件復位;②設置中斷方式,這一步驟確定了中斷輸出是高有效還是低有效;③設置缺省地址,這是由于USB規(guī)范規(guī)定設備在總線為其分配地址之間要以0作為缺省地址;④設置中斷屏蔽,在USBN9602中各個端點的發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和發(fā)送NAK握手包等事件可能產(chǎn)生中斷;設置中斷屏蔽這個步驟確定了哪一個端點的哪一種事件能夠產(chǎn)生中斷。

        單片機通過中斷的方式來處理USB接口上的各個事件,處理過程是在中斷句柄中完成的。當某個端點接收到數(shù)據(jù),并且在初始化中該事件被允許中斷,則USBN9602就會向單片機發(fā)出中斷信號,單片機會在中斷句柄中處理這些數(shù)據(jù)。中斷句柄中處理了端點0對以控制方式傳輸?shù)拿畹慕邮张c響應和各個端點數(shù)據(jù)的發(fā)送與接收等事件,其中那些以控制方式傳輸?shù)拿畎ㄇ宄卣鳎–LEAR-FEATURE)、設置特征(SET-FEA-TURE)、讀取配置(GET-CONFIGURATION)、設置配置(SET-CONFIGURATION)、讀取描述符(GET-DESCRIP-TOR)、讀取狀態(tài)(GET-STATUS)和設置地址(SET-AD-DRESS)。通過這些命令主機可以了解或改變設備的工作狀態(tài)。描述符包括設備描述符和配置描述符,USB規(guī)范給出了它們的格式工,想要計算機正確識別設備并安裝驅(qū)動程序,這些描述符必須根據(jù)具體設備的情況填寫。

        以上各步驟中USBN9602與單片機的通信是通過單片機在USBN9602的寄存器中進行讀和寫來完成的,因此對USBN9602的讀和寫是單片機執(zhí)行最頻繁也是最重要的操作。在程序中這兩個操作表現(xiàn)為子函數(shù)read_usb和write_usb。USBN9602共有64個可讀或可寫的寄存器,它們同時擁有一個高8位地址,又各自擁有一個低8位地址(00~3F)。由于前面所提到可以把USBN9602中需要讀寫的寄存器當作普通的外部數(shù)據(jù)寄存器來對待,所以只需給定高8位地址和要讀寫的寄存器對應的低8位地址,就可以直接用MOVX指令來完成這兩項操作。

        這時的PRU已經(jīng)成為一個USB設備,能夠被計算機正確識別。要使這個USB設備正常工作,實現(xiàn)它與計算機的通信,還要為該設備編寫驅(qū)動程序。USB的驅(qū)動程序?qū)儆赪DM型。WDM(Windows Driver Model),即Windows驅(qū)動程序模型,是Microsoft力推的全新驅(qū)動程序模式,旨在通過提供一種靈活的方式來簡化驅(qū)動程序的開發(fā),在實際對新硬件支持的基礎上減少并降低所必須開發(fā)的驅(qū)動程序的數(shù)據(jù)數(shù)量和復雜性。開發(fā)工具可以選擇DDK(Driver Development Kits)。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 和平县| 武陟县| 都兰县| 酉阳| 南乐县| 新和县| 长子县| 巨野县| 济阳县| 湖南省| 保山市| 台江县| 来宾市| 商丘市| 新干县| 高邑县| 荔浦县| 那曲县| 驻马店市| 东光县| 南木林县| 鄱阳县| 沽源县| 东海县| 堆龙德庆县| 石屏县| 屏边| 石楼县| 兴城市| 常熟市| 青神县| 成都市| 凯里市| 塘沽区| 同德县| 个旧市| 勐海县| 武宁县| 潜山县| 涟水县| 左云县|