日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式系統(tǒng)串行設(shè)備管理的研究與實現(xiàn)

引言

隨著微電子技術(shù)的發(fā)展,嵌入式系統(tǒng)的功能越來越強大,像 UART口、IrDA、USB、I2C以及SPI這些串行接口或設(shè)備同時存在于一個嵌入式系統(tǒng)中,實現(xiàn)對它們的統(tǒng)一管理將能極大地提高整個嵌入式系統(tǒng)的可移植性、易用性以及開發(fā)效率。本文通過對嵌入式系統(tǒng)串行設(shè)備管理技術(shù)的研究,提出了“帶USB的串行管理”模型,并詳細(xì)闡述了串行設(shè)備管理的實現(xiàn)過程。

串行設(shè)備管理

串行設(shè)備管理是指對COM,IrDA、I2C、modem等流設(shè)備和接口的統(tǒng)一管理。具體說,就是通過統(tǒng)一的上層應(yīng)用層接口和下層驅(qū)動層接口實現(xiàn)對串行設(shè)備的統(tǒng)一管理和透明化處理,從而提高整個系統(tǒng)的易用性和可移植性。USB作為一種新型的高速串行總線,由于具有復(fù)雜性和高速性等特點,在嵌入式操作系統(tǒng)中一般專門為其建立一個USB模型而不放入串行設(shè)備管理中。雖然這樣有利于全面地管理USB主機、USB Hub以及USB設(shè)備,但整個模型實現(xiàn)代碼大而難,且在嵌入式系統(tǒng)下位機中多是USB設(shè)備而沒有USB主機和USB Hub。針對這一特點,本文把對USB設(shè)備的管理加入到串行管理中,使得對USB設(shè)備的訪問如同對一個串口的訪問一樣方便,從而提出了帶USB的串行管理模型。

帶USB的串行管理模型

整個管理模型由兩層構(gòu)成,上層為操作系統(tǒng)應(yīng)用層接口函數(shù)集,主要是統(tǒng)一化的串行流接口函數(shù),如OpenFile等;下層為硬件驅(qū)動程序?qū)訉ο蠛秃瘮?shù)。串行管理的設(shè)備對象由虛擬化的HWOBJ結(jié)構(gòu)體來定義,虛擬對象的登記和管理則是通過對DEVICE_LIST結(jié)構(gòu)體的管理來實現(xiàn)。HWOBJ結(jié)構(gòu)體定義為:

typedef struct _HWOBJ {

void *device_parent; //指向DEVICE_LIST結(jié)構(gòu)

unsigned short device_index; //物理設(shè)備號,指向?qū)嶋H的串行設(shè)備或接口

unsigned lONg bind_flags; //中斷服務(wù)線程處理標(biāo)志位,預(yù)留

unsigned long IntID; //指定中斷類型,預(yù)留

void *reserved;

PHW_VTBL func_tbl; //硬件驅(qū)動函數(shù)對象表

} HWOBJ, *PHWOBJ;

DEVICE_LIST結(jié)構(gòu)體定義為:

typedef struct _DEVICE_LIST {

char *DllName; //設(shè)備DLL文件名,預(yù)留

unsigned long NumberOf Devices; //設(shè)備數(shù)量

void *DeviceArray; //設(shè)備隊列

} DEVICE_LIST, *PDEVICE_LIST;

為了解決USB的高速緩沖問題,專門采用了兩個單獨的循環(huán)隊列,一個用于緩沖USB的IN傳輸數(shù)據(jù),一個用于緩沖USB的OUT傳輸?shù)臄?shù)據(jù)。

帶USB的串行設(shè)備管理驅(qū)動結(jié)構(gòu)如圖1所示。

 

 

圖1 帶USB的串行設(shè)備管理驅(qū)動結(jié)構(gòu)

帶USB的串行管理的實現(xiàn)

為了便于給應(yīng)用層編程人員和驅(qū)動程序編程人員提供良好的編程接口,接口函數(shù)采用了與Windows操作系統(tǒng)中提供的API函數(shù)一致的函數(shù)名和參數(shù)。整個帶USB的串行管理的實現(xiàn)包括名字解析與應(yīng)用層接口函數(shù)的實現(xiàn)、串行設(shè)備低層驅(qū)動接口、應(yīng)用層接口函數(shù)與低層驅(qū)動接口的數(shù)據(jù)傳輸通道的實現(xiàn)。

名字解析與應(yīng)用層接口函數(shù)

這一層的主要任務(wù)是實現(xiàn)設(shè)備文件到對應(yīng)設(shè)備指針的映射。應(yīng)用層主要接口函數(shù)有CreateFile 、OpenFile、WriteFile、 ReadFile、 CloseFIie等。具體實現(xiàn)上主要是設(shè)備名的登記和設(shè)備命名空間的管理。設(shè)備名的登記是指通過設(shè)備登記表來注冊設(shè)備文件名所對應(yīng)的物理設(shè)備文件名、函數(shù)操作指針和設(shè)備命名空間等。其中設(shè)備命名空間是指文件系統(tǒng)的統(tǒng)一文件與設(shè)備的訪問接口表,應(yīng)用程序通過文件系統(tǒng)里的特殊入口(設(shè)備文件名設(shè)備句柄)訪問外圍設(shè)備。

串行設(shè)備低層驅(qū)動接口函數(shù)

串行設(shè)備低層驅(qū)動接口通過提供以函數(shù)指針為成員的結(jié)構(gòu)體來實現(xiàn),每一個結(jié)構(gòu)體函數(shù)指針成員對應(yīng)一個具體的硬件驅(qū)動函數(shù)。

帶USB的串行管理的數(shù)據(jù)傳輸通道

USB的管理

由于相對于其它串行設(shè)備來說,USB是高速設(shè)備,且為典型的主從式設(shè)備,因此,除了專門為USB采用了兩個循環(huán)隊列外,還針對USB是主控制設(shè)備的情況,采取通過自定義雙向訪問協(xié)議包來解決下位機主動發(fā)起訪問的情況。

串行設(shè)備的單道訪問

由于串行設(shè)備在操作系統(tǒng)應(yīng)用層被抽象為一個特殊文件,因而需要考慮是否讓多個應(yīng)用程序同時訪問一個特殊文件的問題,如果允許同時訪問則稱為多道訪問,否則稱為單道訪問。為簡單起見在設(shè)計中通過記錄串行設(shè)備號對應(yīng)的運行狀態(tài)來實現(xiàn)串行設(shè)備的單道訪問。

多設(shè)備的并行訪問

通過跟蹤正在處于工作中的串行設(shè)備的設(shè)備號和記數(shù)值,來實現(xiàn)多個不同串行設(shè)備的并行運行。

數(shù)據(jù)傳輸通道

數(shù)據(jù)傳輸通道如圖2所示。數(shù)據(jù)傳輸流程大致如下:程序(線程)調(diào)用WriteFile或ReadFile把要發(fā)送或接收的地址指針和數(shù)據(jù)大小傳遞到相應(yīng)的硬件屬性表中, WriteFile或ReadFile函數(shù)返回,應(yīng)用程序繼續(xù)運行或掛起等待數(shù)據(jù)操作完(硬件中斷自動完成),最后由中斷返回一個消息喚醒掛起程序(線程)。

 

 

圖2 數(shù)據(jù)傳輸通道

對于USB設(shè)備則先通過USB IN和OUT循環(huán)隊列緩沖再通過USB中斷進(jìn)行傳輸。

結(jié)語

嵌入式操作系統(tǒng)中的串行管理是操作系統(tǒng)I/O子系統(tǒng)的一個重要組成部分,本文介紹的串行管理模塊已加入某國產(chǎn)的商用嵌入式操作系統(tǒng)中,并在深圳某高科技公司的SMARTPHONE項目中得到應(yīng)用。

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

在工業(yè)物聯(lián)網(wǎng)設(shè)備部署中,Modbus通信故障是導(dǎo)致系統(tǒng)停機的首要原因之一。據(jù)統(tǒng)計,超過60%的現(xiàn)場問題源于通信配置錯誤或數(shù)據(jù)解析異常。本文從嵌入式系統(tǒng)開發(fā)視角,系統(tǒng)闡述Modbus通信調(diào)試的方法論,結(jié)合實際案例解析如何高...

關(guān)鍵字: 嵌入式系統(tǒng) Modbus通信

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機 看門狗 嵌入式系統(tǒng)

2025年8月13日 – 提供超豐富半導(dǎo)體和電子元器件?的業(yè)界知名新品引入 (NPI) 代理商貿(mào)澤電子 (Mouser Electronics) 即日起開售Asahi Kasei Microdevices (AKM) 的...

關(guān)鍵字: 數(shù)模轉(zhuǎn)換器 USB 無線揚聲器

物聯(lián)網(wǎng)與智能化設(shè)備快速普及,供電方式的選擇直接影響設(shè)備部署的靈活性、成本與可靠性。PoE(以太網(wǎng)供電)與USB供電作為兩大主流技術(shù),分別在工業(yè)網(wǎng)絡(luò)、智能家居、消費電子等領(lǐng)域占據(jù)關(guān)鍵地位。本文將從設(shè)備適配性、傳輸距離、功率...

關(guān)鍵字: PoE USB

在無線技術(shù)的發(fā)展歷程中,部署的簡便性往往是成功的關(guān)鍵。像Wi-Fi、藍(lán)牙和早期的蜂窩技術(shù),只有在集成變得簡單、無縫且實惠時,才能實現(xiàn)大規(guī)模的應(yīng)用。而如今,Wi-Fi HaLow——一種專為物聯(lián)網(wǎng)(IoT)設(shè)計的遠(yuǎn)距離、低...

關(guān)鍵字: 物聯(lián)網(wǎng) Wi-Fi USB

2025年8月5日 – 專注于引入新品的全球電子元器件和工業(yè)自動化產(chǎn)品授權(quán)代理商貿(mào)澤電子 (Mouser Electronics)即日起開售Microchip Technology的新款A(yù)VR? SD 8位MCU。AVR...

關(guān)鍵字: MCU 工業(yè)自動化 USB

人工智能(AI)和機器學(xué)習(xí)(ML)是使系統(tǒng)能夠從數(shù)據(jù)中學(xué)習(xí)、進(jìn)行推理并隨著時間的推移提高性能的關(guān)鍵技術(shù)。這些技術(shù)通常用于大型數(shù)據(jù)中心和功能強大的GPU,但在微控制器(MCU)等資源受限的器件上部署這些技術(shù)的需求也在不斷增...

關(guān)鍵字: 嵌入式系統(tǒng) 人工智能 機器學(xué)習(xí)

隨著高解析度音頻應(yīng)用的不斷發(fā)展和廣泛部署,諸如USB與I2S之間等不同專業(yè)接口之間的高品質(zhì)音頻轉(zhuǎn)換需求日益增長,由此帶來了實現(xiàn)高性能、高實時性與高靈活性的新挑戰(zhàn)。為此,邊緣AI和智能音頻專家XMOS攜手其全球首家增值分銷...

關(guān)鍵字: SoC USB 處理器

【2025年7月24日, 德國慕尼黑訊】全球功率系統(tǒng)和物聯(lián)網(wǎng)領(lǐng)域的半導(dǎo)體領(lǐng)導(dǎo)者英飛凌科技股份公司(FSE代碼:IFX / OTCQX代碼:IFNNY)近日推出新型英飛凌ID Key系列,進(jìn)一步擴展其通用串行總線(USB)...

關(guān)鍵字: 控制器 USB 非易失性存儲器
關(guān)閉