當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 下位機(jī)與上位機(jī)之間的數(shù)據(jù)通訊,以滿足同步相量測量單元對數(shù)據(jù)傳輸高速率、低延時(shí)和高可靠性的要求。這里主要解決的是USB接口驅(qū)動程序的問題,通過編寫上位機(jī)與下位機(jī)的硬件驅(qū)動程序,實(shí)現(xiàn)利用USB接口

下位機(jī)與上位機(jī)之間的數(shù)據(jù)通訊,以滿足同步相量測量單元對數(shù)據(jù)傳輸高速率、低延時(shí)和高可靠性的要求。這里主要解決的是USB接口驅(qū)動程序的問題,通過編寫上位機(jī)與下位機(jī)的硬件驅(qū)動程序,實(shí)現(xiàn)利用USB接口進(jìn)行ATMAGE128與上位微機(jī)之間數(shù)據(jù)傳輸?shù)墓ぷ鳌?/p>

1 引言

同步相量測量單元(PMU)測量裝置與上位計(jì)算機(jī)之間的通訊速率普遍較低,不能將測量數(shù)據(jù)及時(shí)傳送到上位機(jī)進(jìn)行分析處理,通訊接口已成為整個(gè)系統(tǒng)性能提高的一個(gè)瓶頸,因此有必要使用一種傳輸速率、時(shí)延、穩(wěn)定性均能滿足同步相量測量數(shù)據(jù)傳輸?shù)耐ㄓ媒涌凇?/p>

采用USB接口作為上位機(jī)與下位機(jī)的通訊接口方式可以解決這些問題。利用USB接口中斷傳輸速率大,時(shí)延小,差錯(cuò)率極低的特點(diǎn)來完成實(shí)時(shí)相量數(shù)據(jù)的傳輸。在USB接口的實(shí)際應(yīng)用中,驅(qū)動程序的開發(fā)是最為困難的部分,由于USB接口誕生較晚,目前尚未成為多數(shù)單片微機(jī)的標(biāo)準(zhǔn)設(shè)備,還需要使用專門的接口芯片進(jìn)行連接,用戶必須編寫相應(yīng)的驅(qū)動程序?qū)?shù)據(jù)轉(zhuǎn)化為符合USB系統(tǒng)協(xié)議的格式進(jìn)行傳輸。

本文敘述了ATMAGE128單片機(jī)使用PDIUSBD12接口芯片完成USB接口數(shù)據(jù)通訊的過程。通過驅(qū)動程序完成對相關(guān)硬件設(shè)備的操作。該驅(qū)動程序完成USB接口的中斷傳輸功能,用戶調(diào)用通用命令就可以像使用一個(gè)普通的存儲器一樣使用USB接口芯片。該接口實(shí)現(xiàn)了各采樣點(diǎn)的低延時(shí)上傳功能,可以在1ms內(nèi)完成一個(gè)工頻周期全部采樣值的傳輸。

2 USB系統(tǒng)及其器件選擇介紹

2.1 USB體系概述

USB(Universal Serial Bus)是一種通用串行總線,為了實(shí)現(xiàn)整個(gè)計(jì)算機(jī)系統(tǒng)中總線的一致性,由COMPAQ/ INTEL/MICRSOFT和NEC等公司共同開發(fā)出的一種新的、快速的、雙向的、同步傳輸?shù)牟⒖梢詿岚尾宓臄?shù)據(jù)傳輸總線,簡稱USB總線。USB總線由以下四個(gè)主要部分構(gòu)成:①主機(jī)和設(shè)備:是指USB系統(tǒng)中的主要構(gòu)件。②物理構(gòu)成:是指USB元件的連接方法。③邏輯構(gòu)成:不同的USB元件所擔(dān)當(dāng)?shù)慕巧拓?zé)任,以及從主機(jī)和設(shè)備的角度出發(fā)USB總線所呈現(xiàn)的結(jié)構(gòu)。④客戶軟件與設(shè)備功能接口的關(guān)系。

USB總線有四種數(shù)據(jù)傳輸方式:①控制傳輸:主要用于主機(jī)把命令傳給設(shè)備以及設(shè)備把狀態(tài)返回給主機(jī)。②中斷傳輸:用來支持那些偶然需要少量數(shù)據(jù)通信,但服務(wù)時(shí)間受限制的設(shè)備。③批量傳輸:用來傳輸大量的數(shù)據(jù)而沒有周期和傳輸速率的設(shè)備上。批量傳輸方式并不能保證傳輸?shù)乃俾剩梢员WC傳輸?shù)目煽啃?,?dāng)出現(xiàn)錯(cuò)誤的時(shí)候會要求發(fā)送方重發(fā)。④同步傳輸:以一個(gè)恒定的速率進(jìn)行傳輸。同步傳輸?shù)姆绞降陌l(fā)送和接收方都必須保證傳輸速率的匹配,不然會造成數(shù)據(jù)的丟失。

2.2 USB器件簡介及應(yīng)用

實(shí)現(xiàn)USB傳輸?shù)姆椒ㄖ饕惺褂媒涌谵D(zhuǎn)換芯片和專用的接口芯片兩種。前者就是將USB接口轉(zhuǎn)換為標(biāo)準(zhǔn)的RS232接口使用,在操作方式和傳輸速度上與RS232接口完全相同。后者則可以實(shí)現(xiàn)真正的USB傳輸,使用USB1.1標(biāo)準(zhǔn)的接口芯片如PDIUSBD12可以達(dá)到最高12Mb/s的傳輸速率,使用USB2.0標(biāo)準(zhǔn)的接口芯片如ISP1581則可以達(dá)到480Mb/s的傳輸速率。如果要使用專用的USB接口芯片就必須編寫相應(yīng)的下位機(jī)與上位機(jī)驅(qū)動程序,由于USB傳輸不同于串口傳輸,USB傳輸?shù)姆绞蕉际峭ㄟ^協(xié)議規(guī)定的數(shù)據(jù)包來完成的,所以下位機(jī)的軟件必須實(shí)現(xiàn)對接口器件的硬件管理功能,及對協(xié)議發(fā)出的各種請求作出響應(yīng)。而上位機(jī)驅(qū)動程序需完成對接口芯片的枚舉、地址分配等工作。

2.3 USB接口在本系統(tǒng)中的作用

USB接口在本系統(tǒng)中用來完成下位機(jī)與上位機(jī)的通訊,具體就是連接AVR單片機(jī)與PC,將下位機(jī)采集的數(shù)據(jù)及一些相關(guān)信息傳送到PC進(jìn)行處理。傳輸?shù)臄?shù)據(jù)包括:①電壓值(每周期采樣64個(gè)點(diǎn),12位數(shù)據(jù))。②電流值(每周期采樣64個(gè)點(diǎn),12位數(shù)據(jù))。③同步時(shí)間信號(取自GPS)。

上位機(jī)在接收到這些信息后將會對其進(jìn)行描點(diǎn),故障錄波,遠(yuǎn)程傳送等處理。12位的電壓電流數(shù)據(jù)都要經(jīng)過變換,成為16位數(shù)據(jù),占一個(gè)字節(jié)。每通道1秒鐘傳輸?shù)臄?shù)據(jù)在6KB以上,多個(gè)通道合計(jì),接口的傳輸速率至少要40KB/s,這一要求已經(jīng)超過RS232接口所能提供的傳輸速率。如果使用CAN總線進(jìn)行傳輸,則硬件設(shè)備較為復(fù)雜。綜合比較后,采用PDIUSBD12作為接口芯片進(jìn)行數(shù)據(jù)傳輸是較合適的選擇。采用塑料極小封裝的PDIUSBD12可以很容易安置在電路板上。而且對上位機(jī)的要求也較為寬松,只要有USB接口的計(jì)算機(jī)都可以作為本系統(tǒng)的上位機(jī)。

3 ATMAGE128單片機(jī) 3.1 ATMAGE128單片機(jī)介紹

ATMAGE128單片機(jī)是由ATMEL公司出品的一款高性能低功耗的8位微型控制器,最高時(shí)鐘頻率可以達(dá)16MHz。片內(nèi)集成有容量為128KB的閃存作為程序存儲器,4KB的EEPROM,以及4KB的片內(nèi)存儲器,最高可支持64KB的片外存儲器。

3.2 開發(fā)過程簡述

TMAGE128的開發(fā)一般是由ATMEL公司提供的免費(fèi)仿真工具avrstudio完成的,與常用的51單片機(jī)略有不同,使用c語言進(jìn)行開發(fā)的時(shí)候必須使用第三方編譯器對源代碼進(jìn)行編譯后才能在仿真環(huán)境下運(yùn)行。本次采用的是iCC作為編譯器,本文所有的單片機(jī)程序都在此環(huán)境下運(yùn)行調(diào)試。USB接口器件采用總線控制方式,數(shù)據(jù)傳輸形式采用中斷傳輸。USB接口器件在使用上與一個(gè)普通的外部存儲器相同,所有的控制與數(shù)據(jù)傳輸都必須對ATMAGE128中相應(yīng)的寄存器進(jìn)行讀寫操作才能完成。

4 USB驅(qū)動程序MCU部分

MCU即設(shè)備方控制器,可以是各類型單片機(jī)或者是PC,它們的驅(qū)動程序在結(jié)構(gòu)上是類似的,而具體的代碼,由于使用的系統(tǒng)環(huán)境不同,存在較大差異,下面就詳細(xì)說明以ATMAGE128單片機(jī)作為設(shè)備方控制器的USB驅(qū)動程序結(jié)構(gòu)以及具體實(shí)現(xiàn)的代碼。

4.1 程序整體結(jié)構(gòu)

對于CPU而言,PDIUSBD12芯片與一個(gè)外部存儲器完全相同,CPU通過總線控制的方式對PDIUSBD12進(jìn)行操作。USB接口的傳輸并不會占用許多CPU資源,CPU可以執(zhí)行前臺操作,而USB接口傳輸?shù)墓ぷ鲃t在后臺完成,兩者之間通過中斷服務(wù)程序連接。當(dāng)PDIUSBD12 從USB 收到一個(gè)數(shù)據(jù)包,那么就對CPU 產(chǎn)生一個(gè)中斷請求,CPU 立即響應(yīng)中斷。在ISR中固件將數(shù)據(jù)包從PDIUSBD12 內(nèi)部緩沖區(qū)移到循環(huán)數(shù)據(jù)緩沖區(qū),并在隨后清零PDIUSBD12 的內(nèi)部緩沖區(qū)以使能接收新的數(shù)據(jù)包CPU 可以繼續(xù)它當(dāng)前的前臺任務(wù)直到完成,然后返回到主循環(huán)檢查循環(huán)緩沖區(qū)內(nèi)是否有新的數(shù)據(jù),并開始其它的前臺任務(wù)。無論是上傳或者下載數(shù)據(jù)都是對循環(huán)緩沖區(qū)內(nèi)的數(shù)據(jù)進(jìn)行處理,主循環(huán)只要檢查循環(huán)緩沖區(qū)內(nèi)是否有要處理的新數(shù)據(jù)。程序整體結(jié)構(gòu)框圖如圖1所示。

各模塊分工如下:

(1)硬件提取層:對單片機(jī)的I/O口、數(shù)據(jù)總線等硬件接口進(jìn)行操作。

(2)PDIUSBD12命令接口:對PDIUSBD12器件進(jìn)行操作的模塊子程序集。

(3)中斷服務(wù)程序:當(dāng)PDIUSBD12向單片機(jī)發(fā)出中斷請求時(shí),讀取PDIUSBD12的中斷傳輸來的數(shù)據(jù),并進(jìn)行相關(guān)處理。

(4)標(biāo)準(zhǔn)請求處理程序:對USB的標(biāo)準(zhǔn)設(shè)備請求進(jìn)行處理。

(5)廠商請求處理程序:對用戶添加的廠商請求進(jìn)行處理。

(6)主循環(huán)程序:發(fā)送USB請求、處理USB總線事件和用戶功能處理等。

4.2 硬件提取層相關(guān)程序

硬件提取層執(zhí)行對單片機(jī)I/O口、數(shù)據(jù)總線等的操作,包含向PDIUSBD12發(fā)送數(shù)據(jù)或命令的子程序及從PDIUSBD12讀取數(shù)據(jù)的子程序,該部分代碼需對地址總線和數(shù)據(jù)總線進(jìn)行直接操作。PDIUSBD12的任何操作都是由命令指令和數(shù)據(jù)指令組合完成的,通過改變A0引腳的電平就可以完成命令模式/數(shù)據(jù)模式的切換。

4.3 命令接口

該部分是由一系列命令接口子程序構(gòu)成的,包含了所有PDIUSBD12給出的訪問功能接口的命令。在命令接口中調(diào)用了硬件提取層中的子程序。PDIUSBD12的所有功能都必須由類似的方法完成,先發(fā)送一條命令,然后寫該命令的具體參數(shù)。有的命令參數(shù)是多個(gè)字節(jié)的,如設(shè)置模式命令,此時(shí)就必須調(diào)用兩次寫數(shù)據(jù)線的指令。命令接口程序的編寫格式相對固定,按照PDIUSBD12說明書中給出的命令匯總表依次編寫即可。

4.4 中斷服務(wù)程序

中斷服務(wù)程序代碼處理由PDIUSBD12產(chǎn)生的中斷,它將數(shù)據(jù)從PDIUSBD12內(nèi)部的緩沖區(qū)內(nèi)取出,并建立正確的標(biāo)志,通知主循環(huán)進(jìn)行處理。當(dāng)PDIUSBD12向單片機(jī)發(fā)出中斷請求后,單片機(jī)調(diào)用讀取中斷寄存器的標(biāo)準(zhǔn)命令接口子程序d12_readinterruptregister( )來決定中斷源,然后跳轉(zhuǎn)到相應(yīng)的中斷服務(wù)子程序進(jìn)行處理。中斷服務(wù)程序從PDIUSBD12收集數(shù)據(jù),而主循環(huán)程序?qū)?shù)據(jù)進(jìn)行處理。當(dāng)中斷服務(wù)程序收集到足夠的數(shù)據(jù)時(shí),它通知主程序已經(jīng)做好準(zhǔn)備等待處理。例如在發(fā)送數(shù)據(jù)包階段建立包時(shí),中斷服務(wù)程序?qū)⒔蛿?shù)據(jù)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉