魯盈悅+江駒+王新華+韓勝男
摘 要:針對雙CPU遙控模型直升機機載飛控系統(tǒng)中微處理器間高速可靠數(shù)據(jù)傳輸這一關 鍵性問題,設計了雙口RAM數(shù)據(jù)共享的軟硬件,在基于旗語邏輯的令牌仲裁方式下,實現(xiàn)了DSP 和單片機的雙向數(shù)據(jù)通信。測試結果表明,本文所設計的雙口RAM軟硬件可滿足機載飛控系統(tǒng) 雙CPU間高速可靠數(shù)據(jù)通信的要求,數(shù)據(jù)傳輸效率高,為后續(xù)機載飛控系統(tǒng)的開發(fā)奠定了基礎, 并對其他多CPU系統(tǒng)數(shù)據(jù)傳輸有很好的借鑒意義。
關鍵詞:遙控模型直升機;機載飛控系統(tǒng);數(shù)據(jù)傳輸;雙口RAM;令牌仲裁
中圖分類號:TN79 文獻標識碼:A 文章編號:1673-5048(2014)01-0053-04
TheTechnologyofHighSpeedDataTransmission BasedonDualPortRAMinTokenArbitrationMethod
LUYingyue,JIANGJu,WANGXinhua,HANShengnan
(CollegeofAutomationEngineering,NanjingUniversityofAeronauticsandAstronautics,Nanjing210016,China)
Abstract:Forthekeyproblemofhighspeedreliabledatatransmissionbetweenmicroprocessorsin theairborneflightcontrolsystemofdoubleCPUremotemodelhelicopter,thispaperdevisesboththesoft wareandthehardwareofdualportRAMdatasharingsystem,andrealizesthetwowaydatacommunica tionbetweenDSPandsinglechipprocessor.TestresultsshowthatthedualportRAMsystemcansatisfy theneedofhighspeedreliabledatacommunicationintheairborneflightcontrolsystemwithhighdata transferefficiency.Ithaslaidthefoundationforthedevelopmentoffollowupairborneflightcontrolsys tem,andisagoodreferencetodatatransmissioninothermultiCPUsystem.
Keywords:remotecontrolmodelhelicopter;airborneflightcontrolsystem;datatransmission;du alportRAM;tokenarbitration
0 引 言
無人直升機自主飛行控制系統(tǒng)的設計一直是飛控領域的研究熱點[1]。單CPU由于其控制能力 和信息處理能力有限,難以滿足部分飛控系統(tǒng)實 時性和高效數(shù)據(jù)處理的要求[2]。因此,本文給出了 一種雙CPU遙控模型直升機自主飛行控制機載電 路方案。
多CPU間常采用串行方式進行通信,這種方 法的缺點是傳輸速率低、數(shù)據(jù)提取困難[3]。若采用 標準總線結構進行并行數(shù)據(jù)傳輸,其硬件結構和 軟件協(xié)議都比較復雜,開發(fā)周期長[4]。對飛控系統(tǒng) 而言,雙CPU間快速可靠的數(shù)據(jù)傳輸是整個系統(tǒng) 正常運行的基礎,而高性能的雙口RAM可保證高效的數(shù)據(jù)傳送,其傳輸速度快、電路結構簡單、可 靠性高,能滿足多CPU系統(tǒng)的要求[5-6]。在此基 礎上,本文設計了采用令牌仲裁方式、基于雙口 RAM的雙CPU間通信方案,完成了硬件搭建和軟 件編程,并進行了性能測試。
1 基于DSP和單片機的模型直升機飛控系 統(tǒng)方案設計
遙控模型直升機機載飛控系統(tǒng)的結構設計框 圖如圖1所示。其結構按功能模塊劃分,主要分為 CPU最小系統(tǒng)模塊、外擴存儲器模塊、無線通信模 塊、傳感器模塊和執(zhí)行器控制模塊。本系統(tǒng)充分考 慮了系統(tǒng)接口的靈活性和可拓展性,飛控機硬件 資源豐富、成本低,便于調試。其主控制器采用雙 CPU結構:DSP為主CPU,負責控制律解算、導航 算法、飛行管理以及舵面輸出等功能;單片機作為 CPU,負責機載設備的信息采集、與地面監(jiān)控設備 通信等功能;DSP和單片機之間通過雙口RAM進 行實時通信。
如圖1所示,傳感器子系統(tǒng)采集姿態(tài)角速度、 線加速度等數(shù)據(jù),以數(shù)據(jù)幀的形式送往單片機,單 片機通過雙口RAM將數(shù)據(jù)傳輸?shù)紻SP,DSP解幀 后即可提取出傳感器數(shù)據(jù);借助一對相互通信的 無線數(shù)傳模塊,地面站發(fā)送控制指令幀給單片機, 單片機通過雙口RAM將指令傳輸?shù)紻SP,DSP解 幀后即可提取出指令:獲取了必要的數(shù)據(jù)和指令后 DSP可進行控制律解算,產(chǎn)生PWM脈沖輸出至4 個航模舵機,用于控制縱向周期變距、橫向周期變 距、總距和尾槳槳距。此外,DSP輸出的舵機PWM 占空比可以通過雙口RAM傳送至單片機,單片機 再通過無線數(shù)傳模塊發(fā)送到地面站顯示,供地面實時監(jiān)控用。
由此可見,在以上的飛控計算機工作流程中, 雙口RAM是單片機和DSP之間通信的橋梁,雙 CPU間高速可靠的數(shù)據(jù)通信是系統(tǒng)得以正常運作 的關鍵技術。
2 雙CPU間數(shù)據(jù)通信的硬件設計
作為一種不同于單端口RAM的高速并行傳輸 芯片,雙口RAM配備兩套獨立的地址、數(shù)據(jù)和控 制線,數(shù)據(jù)存取功能與普通單端口RAM相同,存 取速度能滿足不同CPU的要求而無需插入等待狀 態(tài),允許兩個獨立CPU同時異步地訪問存儲單元, 因此在多CPU系統(tǒng)中應用廣泛。本文采用IDT公 司高性能CMOS工藝生產(chǎn)的容量4K×16位的高速 雙口靜態(tài)數(shù)據(jù)存儲邏輯器件IDT70V24[7],可滿足 應用需求。endprint
當兩側CPU在同一時刻對雙口RAM的同一 內存單元寫數(shù)據(jù),或對同一存儲單元一讀一寫數(shù) 據(jù)時,會發(fā)生競爭使用現(xiàn)象,此時大多數(shù)雙口 RAM內部集成的幾種仲裁邏輯可以仲裁CPU使用 權,以避免競爭發(fā)生。常見的有硬件地址仲裁 (BUSY)、令牌仲裁(SEM)和中斷仲裁(INT) 等[8]。芯片自身并不具備以上這些仲裁功能,需要 用戶編寫軟件以配合實現(xiàn)硬件的功能。本文采用 的是令牌仲裁方式。令牌仲裁方式與旗語(Sema phore,或SEM)有關。
2.1 IDT70V24的旗語邏輯
旗語單元是IDT70V24的8個不同于存儲單元 的獨立標志單元,用作端口間的標志(或稱為令 牌)傳送,以申明對某一塊共享資源的使用權。從 硬件上來說旗語邏輯是8個鎖存器,其閉鎖邏輯框 圖如圖2所示。兩個D觸發(fā)器在初始化時均使 SEM輸出高電平,等待雙方申請SEM。如果收到 一方寫入SEM低電平信號,仲裁電路將使該方的 觸發(fā)器輸出端為0,同時繼續(xù)閉鎖另一個SEM輸 出端,使其繼續(xù)保持1。只有當先請求的一方撤銷 SEM信號,即寫入1,才使得另一方SEM輸出端的 閉鎖信號得以解除,恢復等待新的SEM申請。也 就是說,任何想使用RAM共享資源的一方CPU首 先要申請令牌,即向SEM寫0;然后通過讀取SEM 的值以確定是否申請成功。若申請成功,則該CPU 獲取了對RAM資源的使用權;若未成功,則表明 另一方CPU獲取了令牌且正在使用共享資源,此 時用查詢的方式等待另一方CPU釋放了SEM后即 可獲取對RAM資源的使用權。
旗語單元內部的讀寫機制能保證在讀寫周期 間隙系統(tǒng)級競爭現(xiàn)象不會發(fā)生。旗語模式下,CPU 間的這種軟件握手機制與硬件操作無關,因此為 資源共享提供了最大的靈活度。但需注意,旗語初 始化并不是自動發(fā)生的,程序初始階段要用軟件 釋放所有要使用的令牌。
2.2 雙口RAM與CPU的硬件連接
IDT70V24的引腳接線參照圖1所示,電源引 腳和未使用到的引腳沒有畫出。其片選使能引腳 和旗語使能引腳與CPU的通用I/O口相連;讀寫 引腳與CPU的讀寫引腳相連,無需軟件控制;本 文中只使用低8位數(shù)據(jù),據(jù)此設置高/低位數(shù)據(jù)使 能引腳;每側各12根地址線和8根數(shù)據(jù)線分別和 CPU的地址引腳、數(shù)據(jù)引腳對應相連,以便正確尋 址和讀寫。
在開始針對飛控系統(tǒng)的特殊應用之前,首先 完成了一個全功能測試,即
(1)測試是否每個地址空間都能正確讀寫數(shù) 據(jù);
(2)使用雙CPU對雙口RAM的同一地址單 元進行讀寫,觀察雙口RAM的通信功能是否正 常。
本文對雙口RAM的兩種測試方案都編寫了相 應的測試代碼,并在飛控板硬件平臺上進行了測 試驗證。結果表明,雙口RAM的每個地址單元都 能正確讀寫數(shù)據(jù),且雙CPU對同一地址單元的讀 寫也正確無誤。這為下一步飛控系統(tǒng)特定功能的 實現(xiàn)奠定了保證。
模擬遙控直升機飛控板的工作,驗證令牌判 優(yōu)下雙口RAM在本系統(tǒng)中實現(xiàn)雙CPU間數(shù)據(jù)通 信的流程,本文設計以下兩種實驗方案:
(1)單片機通過串口接收地面監(jiān)控站發(fā)送來 的指令幀并解幀,將指令存于雙口RAM中;DSP 在定時器中斷中從雙口RAM里提取出指令,調用 相應的舵機PWM脈沖產(chǎn)生函數(shù),控制某一通道舵 面偏轉;
(2)單片機采集航姿傳感器AHRS每50ms發(fā) 送來的數(shù)據(jù)幀,于定時器中斷處理程序中解幀,將 數(shù)據(jù)存儲于雙口RAM中;DSP也在定時器中斷中從 雙口RAM里提取出數(shù)據(jù),以便做解算處理用。
首先分析本文飛控系統(tǒng)CPU間數(shù)據(jù)傳輸軟硬 件設計的可靠性:
以上方案中,(1)是不定時接收小規(guī)模數(shù)據(jù), (2)是定時接收大規(guī)模數(shù)據(jù)。實驗證明,兩者都取 得了滿意的效果:方案(1)中,地面站發(fā)送對油門 通道的某一指令后,油門通道PWM脈沖輸出的波 形能按既定規(guī)律變化,這一方案已在試飛中驗證 成功,這表明指令幀讀取正確;方案(2)中,多次 運行程序,對比單片機收到的數(shù)據(jù)幀和DSP接收 該數(shù)據(jù)幀的數(shù)組中的內容,發(fā)現(xiàn)每次結果兩者都 幾乎一致,誤碼率在1%以下,這表明數(shù)據(jù)幀讀取 基本正確。以上說明令牌判優(yōu)下基于雙口RAM的 數(shù)據(jù)通信是可靠的,數(shù)據(jù)傳輸沒有出現(xiàn)明顯錯誤。
再來分析本文飛控系統(tǒng)CPU間數(shù)據(jù)傳輸軟硬 件設計的高速性。DSP部分的程序全速運行時,將雙口RAM的寫信號接往示波器觀察,如圖5所 示:圖5(a)是讀使能和寫使能的總線時序,圖5 (b)是放大后的某次寫使能總線時序。
首先分析圖5(a)。圖中體現(xiàn)出的是讀寫信號 之間的時序關系。寫使能拉高后,經(jīng)過不到80ns 的時間進入讀使能時序,這對應于測試代碼中,寫 操作過后立刻進入讀操作,在此期間需要經(jīng)歷一 個地址建立時間,估算值為42ns,因此這部分時 序正確。讀使能拉低后,經(jīng)過約500ns的時間進入 寫使能時序;測試代碼中,讀操作過后,軟件延時 了約600ns,才進入下一個寫操作,故而這部分時 序也是正確的。
再來分析圖5(b)。低電平表示寫信號使能, 從圖中讀出其持續(xù)時間約為180ns??梢酝ㄟ^計算 來驗證:程序中根據(jù)DSP外設時鐘配置知,讀寫外 擴RAM時前導階段(LEAD)、有效階段(ACTIVE) 和結束階段(TRAIL)分別為3,7和3個機器周期, 而DSP初始化設置為2分頻,其機器周期為6.67 ns,故理論上的寫信號使能時間為(3+7+3)×2× 6.67ns=173ns,這表明計算值與實際值相當。endprint
當兩側CPU在同一時刻對雙口RAM的同一 內存單元寫數(shù)據(jù),或對同一存儲單元一讀一寫數(shù) 據(jù)時,會發(fā)生競爭使用現(xiàn)象,此時大多數(shù)雙口 RAM內部集成的幾種仲裁邏輯可以仲裁CPU使用 權,以避免競爭發(fā)生。常見的有硬件地址仲裁 (BUSY)、令牌仲裁(SEM)和中斷仲裁(INT) 等[8]。芯片自身并不具備以上這些仲裁功能,需要 用戶編寫軟件以配合實現(xiàn)硬件的功能。本文采用 的是令牌仲裁方式。令牌仲裁方式與旗語(Sema phore,或SEM)有關。
2.1 IDT70V24的旗語邏輯
旗語單元是IDT70V24的8個不同于存儲單元 的獨立標志單元,用作端口間的標志(或稱為令 牌)傳送,以申明對某一塊共享資源的使用權。從 硬件上來說旗語邏輯是8個鎖存器,其閉鎖邏輯框 圖如圖2所示。兩個D觸發(fā)器在初始化時均使 SEM輸出高電平,等待雙方申請SEM。如果收到 一方寫入SEM低電平信號,仲裁電路將使該方的 觸發(fā)器輸出端為0,同時繼續(xù)閉鎖另一個SEM輸 出端,使其繼續(xù)保持1。只有當先請求的一方撤銷 SEM信號,即寫入1,才使得另一方SEM輸出端的 閉鎖信號得以解除,恢復等待新的SEM申請。也 就是說,任何想使用RAM共享資源的一方CPU首 先要申請令牌,即向SEM寫0;然后通過讀取SEM 的值以確定是否申請成功。若申請成功,則該CPU 獲取了對RAM資源的使用權;若未成功,則表明 另一方CPU獲取了令牌且正在使用共享資源,此 時用查詢的方式等待另一方CPU釋放了SEM后即 可獲取對RAM資源的使用權。
旗語單元內部的讀寫機制能保證在讀寫周期 間隙系統(tǒng)級競爭現(xiàn)象不會發(fā)生。旗語模式下,CPU 間的這種軟件握手機制與硬件操作無關,因此為 資源共享提供了最大的靈活度。但需注意,旗語初 始化并不是自動發(fā)生的,程序初始階段要用軟件 釋放所有要使用的令牌。
2.2 雙口RAM與CPU的硬件連接
IDT70V24的引腳接線參照圖1所示,電源引 腳和未使用到的引腳沒有畫出。其片選使能引腳 和旗語使能引腳與CPU的通用I/O口相連;讀寫 引腳與CPU的讀寫引腳相連,無需軟件控制;本 文中只使用低8位數(shù)據(jù),據(jù)此設置高/低位數(shù)據(jù)使 能引腳;每側各12根地址線和8根數(shù)據(jù)線分別和 CPU的地址引腳、數(shù)據(jù)引腳對應相連,以便正確尋 址和讀寫。
在開始針對飛控系統(tǒng)的特殊應用之前,首先 完成了一個全功能測試,即
(1)測試是否每個地址空間都能正確讀寫數(shù) 據(jù);
(2)使用雙CPU對雙口RAM的同一地址單 元進行讀寫,觀察雙口RAM的通信功能是否正 常。
本文對雙口RAM的兩種測試方案都編寫了相 應的測試代碼,并在飛控板硬件平臺上進行了測 試驗證。結果表明,雙口RAM的每個地址單元都 能正確讀寫數(shù)據(jù),且雙CPU對同一地址單元的讀 寫也正確無誤。這為下一步飛控系統(tǒng)特定功能的 實現(xiàn)奠定了保證。
模擬遙控直升機飛控板的工作,驗證令牌判 優(yōu)下雙口RAM在本系統(tǒng)中實現(xiàn)雙CPU間數(shù)據(jù)通 信的流程,本文設計以下兩種實驗方案:
(1)單片機通過串口接收地面監(jiān)控站發(fā)送來 的指令幀并解幀,將指令存于雙口RAM中;DSP 在定時器中斷中從雙口RAM里提取出指令,調用 相應的舵機PWM脈沖產(chǎn)生函數(shù),控制某一通道舵 面偏轉;
(2)單片機采集航姿傳感器AHRS每50ms發(fā) 送來的數(shù)據(jù)幀,于定時器中斷處理程序中解幀,將 數(shù)據(jù)存儲于雙口RAM中;DSP也在定時器中斷中從 雙口RAM里提取出數(shù)據(jù),以便做解算處理用。
首先分析本文飛控系統(tǒng)CPU間數(shù)據(jù)傳輸軟硬 件設計的可靠性:
以上方案中,(1)是不定時接收小規(guī)模數(shù)據(jù), (2)是定時接收大規(guī)模數(shù)據(jù)。實驗證明,兩者都取 得了滿意的效果:方案(1)中,地面站發(fā)送對油門 通道的某一指令后,油門通道PWM脈沖輸出的波 形能按既定規(guī)律變化,這一方案已在試飛中驗證 成功,這表明指令幀讀取正確;方案(2)中,多次 運行程序,對比單片機收到的數(shù)據(jù)幀和DSP接收 該數(shù)據(jù)幀的數(shù)組中的內容,發(fā)現(xiàn)每次結果兩者都 幾乎一致,誤碼率在1%以下,這表明數(shù)據(jù)幀讀取 基本正確。以上說明令牌判優(yōu)下基于雙口RAM的 數(shù)據(jù)通信是可靠的,數(shù)據(jù)傳輸沒有出現(xiàn)明顯錯誤。
再來分析本文飛控系統(tǒng)CPU間數(shù)據(jù)傳輸軟硬 件設計的高速性。DSP部分的程序全速運行時,將雙口RAM的寫信號接往示波器觀察,如圖5所 示:圖5(a)是讀使能和寫使能的總線時序,圖5 (b)是放大后的某次寫使能總線時序。
首先分析圖5(a)。圖中體現(xiàn)出的是讀寫信號 之間的時序關系。寫使能拉高后,經(jīng)過不到80ns 的時間進入讀使能時序,這對應于測試代碼中,寫 操作過后立刻進入讀操作,在此期間需要經(jīng)歷一 個地址建立時間,估算值為42ns,因此這部分時 序正確。讀使能拉低后,經(jīng)過約500ns的時間進入 寫使能時序;測試代碼中,讀操作過后,軟件延時 了約600ns,才進入下一個寫操作,故而這部分時 序也是正確的。
再來分析圖5(b)。低電平表示寫信號使能, 從圖中讀出其持續(xù)時間約為180ns??梢酝ㄟ^計算 來驗證:程序中根據(jù)DSP外設時鐘配置知,讀寫外 擴RAM時前導階段(LEAD)、有效階段(ACTIVE) 和結束階段(TRAIL)分別為3,7和3個機器周期, 而DSP初始化設置為2分頻,其機器周期為6.67 ns,故理論上的寫信號使能時間為(3+7+3)×2× 6.67ns=173ns,這表明計算值與實際值相當。endprint
當兩側CPU在同一時刻對雙口RAM的同一 內存單元寫數(shù)據(jù),或對同一存儲單元一讀一寫數(shù) 據(jù)時,會發(fā)生競爭使用現(xiàn)象,此時大多數(shù)雙口 RAM內部集成的幾種仲裁邏輯可以仲裁CPU使用 權,以避免競爭發(fā)生。常見的有硬件地址仲裁 (BUSY)、令牌仲裁(SEM)和中斷仲裁(INT) 等[8]。芯片自身并不具備以上這些仲裁功能,需要 用戶編寫軟件以配合實現(xiàn)硬件的功能。本文采用 的是令牌仲裁方式。令牌仲裁方式與旗語(Sema phore,或SEM)有關。
2.1 IDT70V24的旗語邏輯
旗語單元是IDT70V24的8個不同于存儲單元 的獨立標志單元,用作端口間的標志(或稱為令 牌)傳送,以申明對某一塊共享資源的使用權。從 硬件上來說旗語邏輯是8個鎖存器,其閉鎖邏輯框 圖如圖2所示。兩個D觸發(fā)器在初始化時均使 SEM輸出高電平,等待雙方申請SEM。如果收到 一方寫入SEM低電平信號,仲裁電路將使該方的 觸發(fā)器輸出端為0,同時繼續(xù)閉鎖另一個SEM輸 出端,使其繼續(xù)保持1。只有當先請求的一方撤銷 SEM信號,即寫入1,才使得另一方SEM輸出端的 閉鎖信號得以解除,恢復等待新的SEM申請。也 就是說,任何想使用RAM共享資源的一方CPU首 先要申請令牌,即向SEM寫0;然后通過讀取SEM 的值以確定是否申請成功。若申請成功,則該CPU 獲取了對RAM資源的使用權;若未成功,則表明 另一方CPU獲取了令牌且正在使用共享資源,此 時用查詢的方式等待另一方CPU釋放了SEM后即 可獲取對RAM資源的使用權。
旗語單元內部的讀寫機制能保證在讀寫周期 間隙系統(tǒng)級競爭現(xiàn)象不會發(fā)生。旗語模式下,CPU 間的這種軟件握手機制與硬件操作無關,因此為 資源共享提供了最大的靈活度。但需注意,旗語初 始化并不是自動發(fā)生的,程序初始階段要用軟件 釋放所有要使用的令牌。
2.2 雙口RAM與CPU的硬件連接
IDT70V24的引腳接線參照圖1所示,電源引 腳和未使用到的引腳沒有畫出。其片選使能引腳 和旗語使能引腳與CPU的通用I/O口相連;讀寫 引腳與CPU的讀寫引腳相連,無需軟件控制;本 文中只使用低8位數(shù)據(jù),據(jù)此設置高/低位數(shù)據(jù)使 能引腳;每側各12根地址線和8根數(shù)據(jù)線分別和 CPU的地址引腳、數(shù)據(jù)引腳對應相連,以便正確尋 址和讀寫。
在開始針對飛控系統(tǒng)的特殊應用之前,首先 完成了一個全功能測試,即
(1)測試是否每個地址空間都能正確讀寫數(shù) 據(jù);
(2)使用雙CPU對雙口RAM的同一地址單 元進行讀寫,觀察雙口RAM的通信功能是否正 常。
本文對雙口RAM的兩種測試方案都編寫了相 應的測試代碼,并在飛控板硬件平臺上進行了測 試驗證。結果表明,雙口RAM的每個地址單元都 能正確讀寫數(shù)據(jù),且雙CPU對同一地址單元的讀 寫也正確無誤。這為下一步飛控系統(tǒng)特定功能的 實現(xiàn)奠定了保證。
模擬遙控直升機飛控板的工作,驗證令牌判 優(yōu)下雙口RAM在本系統(tǒng)中實現(xiàn)雙CPU間數(shù)據(jù)通 信的流程,本文設計以下兩種實驗方案:
(1)單片機通過串口接收地面監(jiān)控站發(fā)送來 的指令幀并解幀,將指令存于雙口RAM中;DSP 在定時器中斷中從雙口RAM里提取出指令,調用 相應的舵機PWM脈沖產(chǎn)生函數(shù),控制某一通道舵 面偏轉;
(2)單片機采集航姿傳感器AHRS每50ms發(fā) 送來的數(shù)據(jù)幀,于定時器中斷處理程序中解幀,將 數(shù)據(jù)存儲于雙口RAM中;DSP也在定時器中斷中從 雙口RAM里提取出數(shù)據(jù),以便做解算處理用。
首先分析本文飛控系統(tǒng)CPU間數(shù)據(jù)傳輸軟硬 件設計的可靠性:
以上方案中,(1)是不定時接收小規(guī)模數(shù)據(jù), (2)是定時接收大規(guī)模數(shù)據(jù)。實驗證明,兩者都取 得了滿意的效果:方案(1)中,地面站發(fā)送對油門 通道的某一指令后,油門通道PWM脈沖輸出的波 形能按既定規(guī)律變化,這一方案已在試飛中驗證 成功,這表明指令幀讀取正確;方案(2)中,多次 運行程序,對比單片機收到的數(shù)據(jù)幀和DSP接收 該數(shù)據(jù)幀的數(shù)組中的內容,發(fā)現(xiàn)每次結果兩者都 幾乎一致,誤碼率在1%以下,這表明數(shù)據(jù)幀讀取 基本正確。以上說明令牌判優(yōu)下基于雙口RAM的 數(shù)據(jù)通信是可靠的,數(shù)據(jù)傳輸沒有出現(xiàn)明顯錯誤。
再來分析本文飛控系統(tǒng)CPU間數(shù)據(jù)傳輸軟硬 件設計的高速性。DSP部分的程序全速運行時,將雙口RAM的寫信號接往示波器觀察,如圖5所 示:圖5(a)是讀使能和寫使能的總線時序,圖5 (b)是放大后的某次寫使能總線時序。
首先分析圖5(a)。圖中體現(xiàn)出的是讀寫信號 之間的時序關系。寫使能拉高后,經(jīng)過不到80ns 的時間進入讀使能時序,這對應于測試代碼中,寫 操作過后立刻進入讀操作,在此期間需要經(jīng)歷一 個地址建立時間,估算值為42ns,因此這部分時 序正確。讀使能拉低后,經(jīng)過約500ns的時間進入 寫使能時序;測試代碼中,讀操作過后,軟件延時 了約600ns,才進入下一個寫操作,故而這部分時 序也是正確的。
再來分析圖5(b)。低電平表示寫信號使能, 從圖中讀出其持續(xù)時間約為180ns??梢酝ㄟ^計算 來驗證:程序中根據(jù)DSP外設時鐘配置知,讀寫外 擴RAM時前導階段(LEAD)、有效階段(ACTIVE) 和結束階段(TRAIL)分別為3,7和3個機器周期, 而DSP初始化設置為2分頻,其機器周期為6.67 ns,故理論上的寫信號使能時間為(3+7+3)×2× 6.67ns=173ns,這表明計算值與實際值相當。endprint