国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

雙處理器間的同步串口通信機(jī)制軟件實(shí)現(xiàn)方法

2022-07-01 03:19劉曉棟張亦姝
現(xiàn)代電子技術(shù) 2022年13期
關(guān)鍵詞:波特率同步控制功能模塊

蔣 欣,劉曉棟,張亦姝,韓 強(qiáng)

(1.中航工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安 710016;2.空裝駐西安地區(qū)第六軍事代表室,陜西 西安 710016)

0 引 言

傳統(tǒng)的處理器間同步通信的實(shí)現(xiàn)方式主要有以下兩種:

1)FPGA實(shí)現(xiàn)。在FPGA內(nèi)部構(gòu)建同步輸入輸出接口,將FPGA模擬為SDRAM控制器,實(shí)現(xiàn)FPGA與處理器之間的同步數(shù)據(jù)傳輸。

2)同步時(shí)鐘實(shí)現(xiàn)。結(jié)合同步時(shí)鐘戳和邏輯時(shí)鐘實(shí)現(xiàn)分布式系統(tǒng)的時(shí)間確定性。

但是上述同步通信實(shí)現(xiàn)方法有一定不足之處:FPGA與處理器集成度不高,增加了硬件設(shè)計(jì)的復(fù)雜度;同步時(shí)鐘設(shè)計(jì)復(fù)雜,有很大的軟件開(kāi)銷。

PowerPC系列處理器P2010有兩個(gè)獨(dú)立控制的UART控制器,利用UART控制器的互聯(lián)通信,同時(shí)加載軟件時(shí)序控制協(xié)議,完成一個(gè)數(shù)據(jù)處理模塊上兩個(gè)P2010處理器間的同步通信機(jī)制,這樣有利于減少數(shù)據(jù)處理模塊硬件電路設(shè)計(jì)的復(fù)雜度,增加了處理器間協(xié)調(diào)工作的途徑,加強(qiáng)了數(shù)據(jù)處理模塊使用的靈活性。

1 處理器間軟件同步通信機(jī)制原理

1.1 P2010處理器UART的硬件配置

1)處理器UART的基本配置

P2010處理器具備2個(gè)獨(dú)立的全雙工UART,編程模型與PC16552D兼容。FIFO模式下,接收器和發(fā)送器均帶有16 B的FIFO。軟件可編程波特率,16位計(jì)數(shù)器用于波特率生成,帶有START、STOP和奇偶校驗(yàn)位,以及錯(cuò)誤檢測(cè)。

UART的組成框圖如圖1所示。

圖1 UART框圖

2)UART的工作效率

為使處理及時(shí)、節(jié)省CPU時(shí)間,將UART配置為FIFO模式、中斷或者DMA處理方式。推薦配置方式為:8位數(shù)據(jù)長(zhǎng)度、1位停止位、無(wú)奇偶校驗(yàn)、3.125 Mb/s波特率,接收FIFO半滿時(shí)觸發(fā)接收中斷,發(fā)送時(shí)盡量將發(fā)送FIFO填滿。

1.2 UART的配置與硬件啟動(dòng)的時(shí)序關(guān)系

1)系統(tǒng)引導(dǎo)程序?qū)ART的配置

所有DUART寄存器必須映射到非CACHE的地址,即MMU的WIMG應(yīng)該設(shè)置為0B01x1。所有UART寄存器都是1 B寬,讀寫這些寄存器必須是1 B寬。設(shè)置數(shù)據(jù)長(zhǎng)度、停止位、校驗(yàn)方式、FIFO模式、清理發(fā)送和接收FIFO、DMA、波特率等。

2)板級(jí)支持包對(duì)UART的配置

板級(jí)支持包中,兩個(gè)處理器通過(guò)各自的UART完成第一次握手,標(biāo)志兩個(gè)處理器的UART準(zhǔn)備完成。處理器通過(guò)各自的UART發(fā)送同步數(shù)據(jù),然后接收同步數(shù)據(jù),若接收超時(shí)則重復(fù)進(jìn)行發(fā)送-接收操作,直到接收到同步數(shù)據(jù)或者握手超時(shí)。

3)OS啟動(dòng)后UART的同步通信

OS啟動(dòng)后,同步通信模塊加載,以一定的通信協(xié)議保持兩個(gè)處理器之間的同步。初始化等待1.2 s確保對(duì)方已經(jīng)啟動(dòng),進(jìn)行初始化緩沖區(qū)、注冊(cè)用戶回調(diào)函數(shù)等必要的準(zhǔn)備工作,然后啟動(dòng)通信協(xié)議。

1.3 同步通信機(jī)制軟件的功能模塊

同步通信機(jī)制具有以下三種用途:

1)同步心跳(定時(shí)通信);

2)同步數(shù)據(jù)(即時(shí)通信);

3)同步控制,協(xié)調(diào)處理器間的任務(wù)調(diào)度(應(yīng)急通信)。

根據(jù)以上用途,劃分軟件功能模塊:發(fā)送數(shù)據(jù)模塊、組包入隊(duì)模塊、同步心跳處理模塊、同步數(shù)據(jù)模塊、同步控制模塊、接收數(shù)據(jù)模塊、解包分發(fā)模塊。

數(shù)據(jù)幀的一般結(jié)構(gòu)如圖2所示。根據(jù)通信類型的不同,TYPE分為定時(shí)通信類型0、即時(shí)通信類型1和應(yīng)急通信類型2。長(zhǎng)度LEN表示數(shù)據(jù)幀的總長(zhǎng)度。CRC為數(shù)據(jù)幀的校驗(yàn)和。DATA為與通信類型相關(guān)的數(shù)據(jù),定時(shí)通信類型DATA為4 B的時(shí)間戳,即時(shí)通信類型DATA為1~250 B的用戶數(shù)據(jù),應(yīng)急通信DATA是4 B的控制指令。

圖2 數(shù)據(jù)幀結(jié)構(gòu)

接收數(shù)據(jù)過(guò)程:UART接收到數(shù)據(jù)后,通過(guò)中斷控制器或者DMA控制器將數(shù)據(jù)存放到一級(jí)接收緩沖區(qū)內(nèi),并喚醒解包模塊進(jìn)行處理。解包模塊檢測(cè)數(shù)據(jù)包的完整性,然后根據(jù)數(shù)據(jù)包類型作相應(yīng)的處理。如果是同步控制信息,則立即通知應(yīng)急處理單元;如果是同步心跳,則將心跳值保存;如果是同步數(shù)據(jù),則保存同步數(shù)據(jù)。

發(fā)送數(shù)據(jù)過(guò)程:心跳處理單元要發(fā)送心跳時(shí),經(jīng)過(guò)組包單元形成數(shù)據(jù)包,將數(shù)據(jù)包插入到發(fā)送隊(duì)列的開(kāi)頭,若有同步控制數(shù)據(jù)包則放到同步控制數(shù)據(jù)包之后。同步數(shù)據(jù)處理單元要發(fā)送同步數(shù)據(jù)時(shí),經(jīng)過(guò)組包單元形成數(shù)據(jù)包,將數(shù)據(jù)包插入到發(fā)送隊(duì)列的末尾。同步控制單元要發(fā)送控制命令時(shí),經(jīng)過(guò)組包單元形成控制數(shù)據(jù)包,插入到發(fā)送隊(duì)列的開(kāi)頭,并監(jiān)督該數(shù)據(jù)包發(fā)送完成。

1.4 分配同步通信機(jī)制中的功能模塊時(shí)間表

根據(jù)處理器的實(shí)際處理速度、上層軟件以及任務(wù)開(kāi)銷的時(shí)間,可以做出如下假設(shè):一個(gè)同步心跳周期內(nèi)最多有2個(gè)同步控制,同步數(shù)據(jù)最高速率為128 KB/s。據(jù)此設(shè)計(jì)各功能模塊的時(shí)間分配關(guān)系表。

一個(gè)周期內(nèi),同步心跳20.5μs,同步控制0~41μs,同步數(shù)據(jù)0~979.5μs。

同步心跳包:8 B,20.5μs,1 ms為周期;

同步控制包:8 B,20.5μs;

同步數(shù)據(jù)包:5~255 B,12.8~653μs。

在最壞情況下,同步控制的漂移為653μs,同步心跳的漂移為653+20.5×2=694μs。

以下是通信時(shí)間分配的一種典型情況。以發(fā)送數(shù)據(jù)為例,每1 ms需要發(fā)送一次同步心跳包,第1個(gè)同步心跳包在0 ms處發(fā)送,0.5 ms時(shí)發(fā)送同步數(shù)據(jù)包持續(xù)0.6 ms,第2個(gè)同步心跳包順延至1.1 ms處發(fā)送。第3個(gè)周期內(nèi)控制包來(lái)到,這時(shí)心跳包正在發(fā)送,等待心跳包發(fā)送完成再發(fā)送控制包,如圖3所示。

圖3 通信時(shí)間分配情況舉例

2 處理器間軟件同步通信機(jī)制的實(shí)現(xiàn)

2.1 UART在Boot中的配置流程

UART在Boot中的配置流程為配置MMU,設(shè)置UART寄存器LCR、FCR、DLL、DLM、MCR和IER,如圖4所示。

圖4 UART在Boot中的配置流程

2.2 同步通信在板級(jí)包中的配置流程

在板級(jí)包中UART完成第一次握手。握手以對(duì)稱方式完成,一方首先等待1.2 s確保對(duì)方已經(jīng)啟動(dòng),然后發(fā)送0x5A,接收到對(duì)方發(fā)來(lái)的0x5A后再發(fā)送0xA5進(jìn)行確認(rèn),如圖5所示。

圖5 UART第一次握手

2.3 同步通信機(jī)制功能模塊在操作系統(tǒng)上的工作流程

OS啟動(dòng)后,加載同步通信機(jī)制的功能模塊,初始化緩沖區(qū),包括1個(gè)接收緩沖區(qū)和3個(gè)發(fā)送緩沖區(qū);然后清理串口接收寄存器;最后注冊(cè)用戶回調(diào)函數(shù)并啟動(dòng)同步通信任務(wù),完成同步通信機(jī)制的功能模塊,如圖6所示。

圖6 加載同步通信模塊

3 效能對(duì)比

對(duì)FPGA同步、同步時(shí)鐘同步和UART同步這三種同步方式做對(duì)比,從同步方式、同步時(shí)間和效能評(píng)價(jià)三方面對(duì)比它們的優(yōu)缺點(diǎn),對(duì)比結(jié)果如表1所示。

表1 三種同步方式的效能對(duì)比

4 結(jié) 語(yǔ)

本文實(shí)現(xiàn)了雙處理器間的同步串口通信機(jī)制軟件,制定了對(duì)稱的通信協(xié)議并分析了該協(xié)議的工作性能。該實(shí)現(xiàn)方法與傳統(tǒng)的同步方法相比,對(duì)系統(tǒng)通信性能有了較大的提高,給軟硬件的開(kāi)發(fā)和調(diào)試帶來(lái)了較大的便利。

猜你喜歡
波特率同步控制功能模塊
CAN 總線波特率自適應(yīng)程序設(shè)計(jì)
基于FPGA的異步串行通信波特率容錯(cuò)設(shè)計(jì)
基于EtherCAT網(wǎng)絡(luò)的金剛線多線切割機(jī)雙主軸同步控制
基于ASP.NET標(biāo)準(zhǔn)的采購(gòu)管理系統(tǒng)研究
輸電線路附著物測(cè)算系統(tǒng)測(cè)算功能模塊的研究
M市石油裝備公服平臺(tái)網(wǎng)站主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)
功能模塊的設(shè)計(jì)與應(yīng)用研究
基于云模型的舵機(jī)同步控制
基于廣義預(yù)測(cè)的雙轉(zhuǎn)動(dòng)掃描系統(tǒng)同步控制
一個(gè)具有完全四翼形式的四維混沌系統(tǒng)同步控制
岑溪市| 炎陵县| 桃源县| 泸定县| 青岛市| 福海县| 贵港市| 黑山县| 重庆市| 武陟县| 黎川县| 石渠县| 古交市| 建昌县| 泌阳县| 泸定县| 田阳县| 中山市| 仁化县| 资源县| 鹤山市| 沾化县| 长兴县| 抚宁县| 澄城县| 罗甸县| 牡丹江市| 高碑店市| 惠州市| 汾阳市| 彭山县| 隆尧县| 临邑县| 定日县| 蚌埠市| 察隅县| 金沙县| 四子王旗| 建昌县| 集贤县| 定兴县|