網(wǎng)絡(luò)棧和通信層(COMM)
發(fā)布時(shí)間:2012/4/3 0:34:18 訪問(wèn)次數(shù):1097
MOS網(wǎng)絡(luò)棧作為一個(gè)或多個(gè)用戶級(jí)SFH484-2 E7517線程執(zhí)行(圖6-2),網(wǎng)絡(luò)棧支持網(wǎng)絡(luò)的第三層及第三層以上,如路由層、傳輸層和應(yīng)用層(MAC協(xié)議由通信層提供)。網(wǎng)絡(luò)棧的不同層可以執(zhí)行在不同的線程中,也可以所有層均由一種線程實(shí)現(xiàn),這取決于性能與擴(kuò)展性。網(wǎng)絡(luò)棧的各層都被設(shè)計(jì)成了最小化內(nèi)存緩沖區(qū),一個(gè)線程內(nèi),一個(gè)數(shù)據(jù)包的數(shù)據(jù)負(fù)載通常在通過(guò)網(wǎng)絡(luò)棧的所有層。通過(guò)采用這種機(jī)制,網(wǎng)絡(luò)棧避免了數(shù)據(jù)復(fù)制,這和TinyOS的零復(fù)制方法有異曲同工之妙。
MOS的通信層為通信設(shè)備驅(qū)動(dòng)程序提供統(tǒng)一的接口(如串口、USB或者無(wú)線通信設(shè)備),如圖6-3所示。COMM層也負(fù)責(zé)實(shí)現(xiàn)管理數(shù)據(jù)包緩沖和同步功能。網(wǎng)絡(luò)線程或應(yīng)用程序線程通過(guò)4個(gè)函數(shù)與通信設(shè)備進(jìn)行交互:com_send、com recv、com_mode.
com ioctl。
當(dāng)調(diào)用com_send時(shí),發(fā)送線程(可能是網(wǎng)絡(luò)線程,也可能是應(yīng)用程序線程)傳遞指針給數(shù)據(jù)包緩沖區(qū)( comBuf),COMM層對(duì)發(fā)送線程進(jìn)行阻塞,將指針傳遞給指定的設(shè)備驅(qū)動(dòng),而設(shè)備驅(qū)動(dòng)程序由線程實(shí)現(xiàn),典型的實(shí)現(xiàn)便是以中斷驅(qū)動(dòng)狀態(tài)機(jī)的形式,該狀態(tài)機(jī)通過(guò)硬件設(shè)備優(yōu)先發(fā)送數(shù)據(jù)包,當(dāng)狀態(tài)機(jī)達(dá)到完成狀態(tài)時(shí),發(fā)送線程得到恢復(fù)。
盡管發(fā)送線程可以是同步的,接收線程必須在后臺(tái)進(jìn)行(即使網(wǎng)絡(luò)線程或者應(yīng)用程序線程并沒(méi)有立即執(zhí)行com—recv調(diào)用)。接收的數(shù)據(jù)包內(nèi)存管理由COMM層自己負(fù)責(zé)(COMM層擁有許多comBuf)。設(shè)備驅(qū)動(dòng)器可以向COMM層請(qǐng)求comBuf, COMM層批準(zhǔn)后將comBuf分配給那臺(tái)設(shè)備。一旦獲得一個(gè)comBuf,設(shè)備驅(qū)動(dòng)程序可以將接收到的數(shù)據(jù)包填進(jìn)去(這由中斷狀態(tài)機(jī)來(lái)控制)。當(dāng)數(shù)據(jù)包接收完畢,設(shè)備驅(qū)動(dòng)程序調(diào)用com_swap_bufs將comBuf清空,COMM層對(duì)歷有數(shù)據(jù)包按照順序進(jìn)行緩存。當(dāng)一個(gè)線程調(diào)用com recv時(shí),它將被阻塞,直到指定設(shè)備獲得一個(gè)完整的comBuf(當(dāng)此時(shí)將返回指向comBuf的指針)。如果接收線程擁有COMM層分配的comBuf,則必須在它結(jié)束時(shí)調(diào)用com_free_buf對(duì)comBuf進(jìn)行釋放,這樣,就可以重新利用這個(gè)comBuf。對(duì)于接收線程而言,額外調(diào)用釋放緩沖區(qū)是十分復(fù)雜的工作,但是,這使得COMM層提供真正的零復(fù)制服務(wù)。除此以外,因?yàn)镃OMM層完全是中斷驅(qū)動(dòng)的,COMM層也是閑時(shí)零輪詢(可以節(jié)約能量)。
除發(fā)送和接收外,COMM層提供模式mode調(diào)用和ioctl調(diào)用,mode調(diào)用用來(lái)調(diào)節(jié)設(shè)備能量的高低,而ioctl調(diào)用用于對(duì)設(shè)備的I/O通道進(jìn)行管理。
MAC層協(xié)議在無(wú)線電通信的設(shè)備驅(qū)動(dòng)中實(shí)現(xiàn)(駐留在COMM層)。MAC層負(fù)責(zé)控制諸如網(wǎng)絡(luò)占空比、無(wú)線電通信何時(shí)休眠以節(jié)約能量、傳輸功率控制等。
MOS網(wǎng)絡(luò)棧作為一個(gè)或多個(gè)用戶級(jí)SFH484-2 E7517線程執(zhí)行(圖6-2),網(wǎng)絡(luò)棧支持網(wǎng)絡(luò)的第三層及第三層以上,如路由層、傳輸層和應(yīng)用層(MAC協(xié)議由通信層提供)。網(wǎng)絡(luò)棧的不同層可以執(zhí)行在不同的線程中,也可以所有層均由一種線程實(shí)現(xiàn),這取決于性能與擴(kuò)展性。網(wǎng)絡(luò)棧的各層都被設(shè)計(jì)成了最小化內(nèi)存緩沖區(qū),一個(gè)線程內(nèi),一個(gè)數(shù)據(jù)包的數(shù)據(jù)負(fù)載通常在通過(guò)網(wǎng)絡(luò)棧的所有層。通過(guò)采用這種機(jī)制,網(wǎng)絡(luò)棧避免了數(shù)據(jù)復(fù)制,這和TinyOS的零復(fù)制方法有異曲同工之妙。
MOS的通信層為通信設(shè)備驅(qū)動(dòng)程序提供統(tǒng)一的接口(如串口、USB或者無(wú)線通信設(shè)備),如圖6-3所示。COMM層也負(fù)責(zé)實(shí)現(xiàn)管理數(shù)據(jù)包緩沖和同步功能。網(wǎng)絡(luò)線程或應(yīng)用程序線程通過(guò)4個(gè)函數(shù)與通信設(shè)備進(jìn)行交互:com_send、com recv、com_mode.
com ioctl。
當(dāng)調(diào)用com_send時(shí),發(fā)送線程(可能是網(wǎng)絡(luò)線程,也可能是應(yīng)用程序線程)傳遞指針給數(shù)據(jù)包緩沖區(qū)( comBuf),COMM層對(duì)發(fā)送線程進(jìn)行阻塞,將指針傳遞給指定的設(shè)備驅(qū)動(dòng),而設(shè)備驅(qū)動(dòng)程序由線程實(shí)現(xiàn),典型的實(shí)現(xiàn)便是以中斷驅(qū)動(dòng)狀態(tài)機(jī)的形式,該狀態(tài)機(jī)通過(guò)硬件設(shè)備優(yōu)先發(fā)送數(shù)據(jù)包,當(dāng)狀態(tài)機(jī)達(dá)到完成狀態(tài)時(shí),發(fā)送線程得到恢復(fù)。
盡管發(fā)送線程可以是同步的,接收線程必須在后臺(tái)進(jìn)行(即使網(wǎng)絡(luò)線程或者應(yīng)用程序線程并沒(méi)有立即執(zhí)行com—recv調(diào)用)。接收的數(shù)據(jù)包內(nèi)存管理由COMM層自己負(fù)責(zé)(COMM層擁有許多comBuf)。設(shè)備驅(qū)動(dòng)器可以向COMM層請(qǐng)求comBuf, COMM層批準(zhǔn)后將comBuf分配給那臺(tái)設(shè)備。一旦獲得一個(gè)comBuf,設(shè)備驅(qū)動(dòng)程序可以將接收到的數(shù)據(jù)包填進(jìn)去(這由中斷狀態(tài)機(jī)來(lái)控制)。當(dāng)數(shù)據(jù)包接收完畢,設(shè)備驅(qū)動(dòng)程序調(diào)用com_swap_bufs將comBuf清空,COMM層對(duì)歷有數(shù)據(jù)包按照順序進(jìn)行緩存。當(dāng)一個(gè)線程調(diào)用com recv時(shí),它將被阻塞,直到指定設(shè)備獲得一個(gè)完整的comBuf(當(dāng)此時(shí)將返回指向comBuf的指針)。如果接收線程擁有COMM層分配的comBuf,則必須在它結(jié)束時(shí)調(diào)用com_free_buf對(duì)comBuf進(jìn)行釋放,這樣,就可以重新利用這個(gè)comBuf。對(duì)于接收線程而言,額外調(diào)用釋放緩沖區(qū)是十分復(fù)雜的工作,但是,這使得COMM層提供真正的零復(fù)制服務(wù)。除此以外,因?yàn)镃OMM層完全是中斷驅(qū)動(dòng)的,COMM層也是閑時(shí)零輪詢(可以節(jié)約能量)。
除發(fā)送和接收外,COMM層提供模式mode調(diào)用和ioctl調(diào)用,mode調(diào)用用來(lái)調(diào)節(jié)設(shè)備能量的高低,而ioctl調(diào)用用于對(duì)設(shè)備的I/O通道進(jìn)行管理。
MAC層協(xié)議在無(wú)線電通信的設(shè)備驅(qū)動(dòng)中實(shí)現(xiàn)(駐留在COMM層)。MAC層負(fù)責(zé)控制諸如網(wǎng)絡(luò)占空比、無(wú)線電通信何時(shí)休眠以節(jié)約能量、傳輸功率控制等。
熱門點(diǎn)擊
- 橋式傳感器放大和ADC輸入匹配電路
- K型熱電偶傳感器放大電路
- 運(yùn)算放大器反相和同相結(jié)構(gòu)阻抗匹配的方法
- MAC子層
- INA333基本應(yīng)用電路
- 鋁電解電容器的結(jié)構(gòu)與特點(diǎn)
- Cougar系統(tǒng)
- 無(wú)線傳感器網(wǎng)絡(luò)定位技術(shù)
- 以數(shù)據(jù)為中心的無(wú)線傳感器網(wǎng)絡(luò)數(shù)據(jù)庫(kù)
- 拓?fù)淇刂浦械男菝哒{(diào)度技術(shù)
推薦技術(shù)資料
- 聲道前級(jí)設(shè)計(jì)特點(diǎn)
- 與通常的Hi-Fi前級(jí)不同,EP9307-CRZ這臺(tái)分... [詳細(xì)]
- AMOLED顯示驅(qū)動(dòng)芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級(jí)芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究