亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        QNX操作系統(tǒng)的網(wǎng)絡(luò)交換機(jī)驅(qū)動(dòng)設(shè)計(jì)

        2021-07-20 08:14:50傅遷

        ◆傅遷

        (遼寧廣播電視大學(xué)丹東分校 遼寧 118000)

        隨著持續(xù)的智能化電力系統(tǒng)不斷發(fā)展,對(duì)自動(dòng)化設(shè)備的通信技術(shù)提出了更高的要求。在要求穩(wěn)定可靠的通信同時(shí),它還需要盡可能多的網(wǎng)絡(luò)接口以及冗余的通信接口。傳統(tǒng)的通信中,模塊通常使用特定于CPU 的MAC 控制器以及獨(dú)立的PHY 來(lái)進(jìn)行網(wǎng)絡(luò)通信。受到資源的桎梏,CPU 通常僅設(shè)計(jì)有兩個(gè)MAC 控制器,從而對(duì)擴(kuò)展通信網(wǎng)絡(luò)的端口產(chǎn)生了限制。通過(guò)網(wǎng)絡(luò)交換芯片的88e6060 來(lái)設(shè)計(jì)具有五個(gè)或更多網(wǎng)絡(luò)端口的通信模塊比較容易,并且可以最大限度地滿(mǎn)足。電源系統(tǒng)關(guān)于通信的要求。

        1 QNX 系統(tǒng)概述

        QNX 是一種類(lèi)似于UNIX 的操作系統(tǒng),也是實(shí)時(shí)的分布式操作系統(tǒng)。它通過(guò)特定微內(nèi)核的結(jié)構(gòu),可以通過(guò)內(nèi)核來(lái)、進(jìn)程通信、底層的網(wǎng)絡(luò)通信以及中斷處理,所以具有較小的內(nèi)核以及較快的運(yùn)行速度。把內(nèi)核中存儲(chǔ)的地址空間和文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議、應(yīng)用程序以及驅(qū)動(dòng)程序中存儲(chǔ)的地址空間分開(kāi)。應(yīng)用程序難以對(duì)內(nèi)核的空間進(jìn)行直接的訪(fǎng)問(wèn)。由于此類(lèi)微內(nèi)核的結(jié)構(gòu)較為封閉,外部模塊故障對(duì)內(nèi)核不能造成影響,大幅度地提升了系統(tǒng)的穩(wěn)定性。此外,QNX 支持?jǐn)U展以及調(diào)整,并且可以根據(jù)用戶(hù)需求對(duì)各種功能的模塊進(jìn)行定制,以開(kāi)發(fā)靈活的嵌入式模塊。

        2 QNX操作系統(tǒng)的網(wǎng)絡(luò)交換機(jī)驅(qū)動(dòng)設(shè)計(jì)的原理

        通信模塊通過(guò)AM3352 作為主控制的CPU。這是在A(yíng)RM Cortex-A8 內(nèi)核的微處理器基礎(chǔ)上,支持720MHz 的高主頻率,具有1600 DMIPS 的高計(jì)算能力,并且外圍的接口較為豐富??梢耘cDDR3結(jié)合使用以支持NAND 閃存以及eMM 的高容量。圖1 顯示了CPU和交換芯片之間連接情況。交換芯片是10/100 BaseT 的網(wǎng)絡(luò)收發(fā)器。端口P5 可以設(shè)計(jì)為以MII-PHY 模式連接到CPU。P0 到P4 可以與錄波器、DCS、信息子系統(tǒng)站以及其他網(wǎng)絡(luò)進(jìn)行通信。

        圖1 CPU 和交換芯片之間連接情況

        3 QNX操作系統(tǒng)網(wǎng)絡(luò)交換機(jī)驅(qū)動(dòng)程序設(shè)計(jì)

        3.1 QNX 基礎(chǔ)上網(wǎng)絡(luò)驅(qū)動(dòng)程序的層次結(jié)構(gòu)

        QNX 網(wǎng)絡(luò)模塊的實(shí)際使用分層的機(jī)構(gòu)。網(wǎng)絡(luò)設(shè)備的驅(qū)動(dòng)程序模塊位于最低級(jí)別,受到io-pkt 的管理以及調(diào)度,需要將數(shù)據(jù)的發(fā)送、傳遞以及接收情況向io-pkt 報(bào)告。中間層作為頂層以及底層之間搭建的數(shù)據(jù)橋,并為協(xié)議模塊提供較為一致的接口。頂層的資源管理器允許Socket API 調(diào)用的read、write 以及open 以及其他函數(shù)。利用讀取應(yīng)用程序?qū)訉?shù)據(jù)發(fā)送給io-pkt,并利用read 的應(yīng)用程序?qū)訉⒃从趇o-pkt 的數(shù)據(jù)進(jìn)行接收,利用write 這一應(yīng)用層將數(shù)據(jù)發(fā)送給io-pkt,而io-pkt 用于進(jìn)行UDP、TCP、IP 這類(lèi)的網(wǎng)絡(luò)傳輸協(xié)議。

        3.2 QNX 中網(wǎng)絡(luò)交換機(jī)驅(qū)動(dòng)的方法以及原理

        3.2.1 初始化模塊的設(shè)計(jì)

        初始化模塊映射寄存器的地址空間,對(duì)寄存器進(jìn)行配置,并向系統(tǒng)提供寄存器的中斷處理、數(shù)據(jù)包接收以及數(shù)據(jù)包發(fā)送等功能。這使系統(tǒng)能夠識(shí)別網(wǎng)絡(luò)設(shè)備,可以與網(wǎng)絡(luò)通信。最后,使用io-pkt 對(duì)數(shù)據(jù)包發(fā)送、接收進(jìn)行調(diào)用。程序先要清除TX_HDP 以及RX_HDP,把CPPI 空間的前4KB 分給接收隊(duì)列的描述字Rx_Descriptors,并將最后4KB 空間用于發(fā)送隊(duì)列的描述字Tx_Descriptors。 Rx_Descriptors是使用以下結(jié)構(gòu)界定的數(shù)組。它的Next 指向接下來(lái)的Rx_Descriptor,其Buffer 指向存儲(chǔ)數(shù)據(jù)主體儲(chǔ)存的RAM 空間,off_len 將有效數(shù)據(jù)的長(zhǎng)度存儲(chǔ)在Buffer 中。flag_len 對(duì)數(shù)據(jù)包的有效長(zhǎng)度以及緩沖區(qū)的狀態(tài)信息進(jìn)行存儲(chǔ)。

        為Rx_Descriptor 建立單一方向的鏈接列表,以便RX_HDP 能指向鏈接的列表開(kāi)頭。列表詳見(jiàn)圖2。

        圖2 接收隊(duì)列鏈表圖

        建立隊(duì)列的描述表之后,驅(qū)動(dòng)程序必須調(diào)用設(shè)備的函數(shù)dev_attach,以將網(wǎng)絡(luò)設(shè)備 dev 分配給每個(gè)端口。必須為結(jié)構(gòu)iopkt_inter 對(duì)中斷使能函數(shù)以及中斷處理的函數(shù)進(jìn)行定義,并最終在io-pkt 中注冊(cè)名為ether_ifattach、if_attach 以及interrupt_entry_init 的函數(shù)。

        將IP 地址對(duì)MAC 地址進(jìn)行映射,實(shí)現(xiàn)網(wǎng)絡(luò)中網(wǎng)絡(luò)設(shè)備的MAC地址是唯一的。初始化的程序進(jìn)行配置文件的讀取,并得到每個(gè)網(wǎng)絡(luò)設(shè)備具有的IP 地址。接下來(lái),將MAC[3:0]調(diào)整成IP[3:0],以對(duì)網(wǎng)絡(luò)設(shè)備的IP 地址以及MAC 地址進(jìn)行同步。

        在正常工作中,電網(wǎng)通信的特征大體是流量較小,但突發(fā)的流量大。通過(guò)網(wǎng)絡(luò)發(fā)送具有各種特征的數(shù)據(jù)包會(huì)產(chǎn)生各種的流量特點(diǎn)。不正確的網(wǎng)絡(luò)配置可能導(dǎo)致不正確的數(shù)據(jù)包傳輸、網(wǎng)絡(luò)風(fēng)暴以及網(wǎng)絡(luò)通信系統(tǒng)運(yùn)行異常。所以,通信設(shè)備需要一項(xiàng)功能,可以抵御網(wǎng)絡(luò)的風(fēng)暴。所以,能夠?qū)M335X 的INT_CONTROL 以及RX_IMAX 寄存器配置為限制每毫秒可接收到的中斷數(shù)??梢钥刂瓢l(fā)生風(fēng)暴時(shí)消耗的系統(tǒng)資源,并在風(fēng)暴消失之后對(duì)通信的功能進(jìn)行快速地恢復(fù)。

        下一步要對(duì)DMA 引擎進(jìn)行配置,打開(kāi)DMA 的發(fā)送以及接收使能,并中斷使能DMA 中。最后,利用SMI 配置交換機(jī)的芯片,并將PHY 配置為自動(dòng)協(xié)商操作的全雙工速率這一模式。為了實(shí)現(xiàn)網(wǎng)絡(luò)通信具有多個(gè)的網(wǎng)絡(luò)端口,應(yīng)根據(jù)表1 對(duì)交換機(jī)路由表進(jìn)行配置。

        表1 VLANTable 的設(shè)置情況

        配置成功之后,便呈現(xiàn)圖3 中連接情況。P0 至P4 與P5 是雙向的連接狀態(tài)。P0-P4 的接口收到源于外部的請(qǐng)求之后,經(jīng)由P5 接口將這些數(shù)據(jù)傳輸?shù)紺PU,CPU 完成處理后,P5 接口把數(shù)據(jù)傳輸?shù)秸?qǐng)求的端口。

        圖3 路由圖的連接情況

        3.2.2 中斷處理的設(shè)計(jì)

        在網(wǎng)絡(luò)數(shù)據(jù)到達(dá)的時(shí)候,DMA 控制器將數(shù)據(jù)放置在外部的緩沖區(qū)中,并且CPU 對(duì)Rx_descriptor 中的flag_len、off_len 以及Buffer區(qū)域進(jìn)行更新。此外,中斷控制器生成一個(gè)中斷的信號(hào),然后io-pkt對(duì)該中斷進(jìn)行接管,并間接地調(diào)用驅(qū)動(dòng)程序中的函數(shù)process_interrupt。使用函數(shù)process_interrupt 調(diào)對(duì)函數(shù)Receive=進(jìn)行調(diào)用,并完成數(shù)據(jù)的接收。

        3.2.3 接收數(shù)據(jù)的設(shè)計(jì)

        接收函數(shù)利用接收隊(duì)列的描述字,進(jìn)而得到有效的數(shù)據(jù)長(zhǎng)度,并使用該長(zhǎng)度來(lái)對(duì)接收到的mbuf 數(shù)據(jù)鏈的mlen 以及m_pkthdr.len 域進(jìn)行更新。利用RMMI 從P5 接口接收的數(shù)據(jù)是帶有標(biāo)記的幀,在尾部帶有4 字節(jié)的定制標(biāo)簽,進(jìn)而在將數(shù)據(jù)發(fā)送給io-pkt 之前必須刪除其標(biāo)簽。在mlen 上執(zhí)行減號(hào)4 的運(yùn)算,同時(shí)通知源于哪個(gè)網(wǎng)絡(luò)接口的io-pkt 數(shù)據(jù)。標(biāo)記幀的定制標(biāo)簽的DPV[5:0]指示數(shù)據(jù)所源自的端口??梢允褂肈PV[5:0]對(duì)與網(wǎng)絡(luò)設(shè)備dev 有關(guān)的common_ecom[]的數(shù)組成員進(jìn)行確定。對(duì)網(wǎng)絡(luò)接口ifnet 進(jìn)行確定并將ifnet 參數(shù)在ip_input中傳遞,所以io-pkt 明白數(shù)據(jù)來(lái)自的網(wǎng)絡(luò)接口以及響應(yīng)數(shù)據(jù)將到達(dá)的網(wǎng)絡(luò)接口。

        3.2.4 發(fā)送數(shù)據(jù)的設(shè)計(jì)

        啟動(dòng)iif_start 這一分組傳輸?shù)暮瘮?shù)需要經(jīng)過(guò)io-pkt,并將響應(yīng)數(shù)據(jù)發(fā)給有關(guān)相的網(wǎng)絡(luò)接口。因?yàn)镻5 接口設(shè)計(jì)為egress trailer 的模式,所以驅(qū)動(dòng)程序必須在響應(yīng)數(shù)據(jù)的末尾之處添加一個(gè)tailer 標(biāo)簽,具體為4 字節(jié)。所以,數(shù)據(jù)區(qū)域m3 通過(guò)m_get 函數(shù)對(duì)數(shù)據(jù)區(qū)m3 進(jìn)行分配,用于tailer 標(biāo)簽的存儲(chǔ)??梢越?jīng)由if_start 函數(shù)中ifnet 這一參數(shù),確定其網(wǎng)絡(luò)的設(shè)備。網(wǎng)絡(luò)設(shè)備當(dāng)中,device_index 成對(duì)設(shè)備的ID 進(jìn)行存儲(chǔ),設(shè)備 ID 是數(shù)據(jù)發(fā)送到的端口序號(hào)。將 1 向左移動(dòng)device_index 位之后,然后將其寫(xiě)入m3 中的m_data 數(shù)據(jù)成員中。要告知88e6060 將數(shù)據(jù)發(fā)送到何處,把m3 與m2 的末尾進(jìn)行鏈接,進(jìn)而創(chuàng)建鏈接列表。由于添加了tailer 標(biāo)簽(大小為4 個(gè)字節(jié)),需要將成員m1 當(dāng)中的m_pkthdr.len 一直增加到4。最后,對(duì)發(fā)送隊(duì)列的描述字進(jìn)行更新,將發(fā)送隊(duì)列描述字的起始地址寫(xiě)入TX_HDP,并啟動(dòng)TXDMA 進(jìn)行數(shù)據(jù)的發(fā)送。

        4 結(jié)語(yǔ)

        交換芯片88e6060 允許輕松、方便地對(duì)網(wǎng)絡(luò)的接口進(jìn)行擴(kuò)展,以實(shí)現(xiàn)電力系統(tǒng)中自動(dòng)化設(shè)備具有多個(gè)通信端口。88e6060 設(shè)計(jì)的通信模塊已完成實(shí)際測(cè)試。它的網(wǎng)絡(luò)通信穩(wěn)定、可靠并且能對(duì)抗網(wǎng)絡(luò)的風(fēng)暴。將其用在電力系統(tǒng)領(lǐng)域,可以確保電力系統(tǒng)的性能穩(wěn)定。

        亚洲精品乱码久久久久久中文字幕 | 成人国产精品一区二区网站公司| 国产99页| 国产毛片一区二区三区| 日本一区二区视频在线| 人妻少妇偷人精品无码| 在线视频一区色| 久久精品国产亚洲av热明星| 99久久久人妻熟妇精品一区二区| 日韩乱码中文字幕在线| 亚洲国产精品综合久久网络 | 国产精品一区二区三区av在线| 偷看农村妇女牲交| 4399理论片午午伦夜理片| 亚洲精品一区二区三区大桥未久| 男女视频在线一区二区| 国产一级黄色片一区二区| 成人欧美一区二区三区在线| 亚洲欧美精品suv| 日产精品久久久久久久蜜臀| 无码一区二区三区在| av免费网站免费久久网| 国产av在线观看久久| 日日摸日日碰夜夜爽无码| 91精品国产色综合久久不卡蜜| 精品国模人妻视频网站| 亚洲免费女女在线视频网站| 色综合久久精品亚洲国产| 福利在线国产| 少妇激情一区二区三区| 论理视频二区三区四区在线观看| 国产免费a∨片在线软件| 六月婷婷国产精品综合| 国产亚洲亚洲精品视频| 久久精品一区午夜视频| 国产乱码一区二区三区爽爽爽| 亚洲福利视频一区 | 日韩在线视精品在亚洲| 亚洲熟女熟妇另类中文| 国产伦精品一区二区三区妓女 | 精品日韩欧美|