基于DM642的實(shí)時(shí)多協(xié)議轉(zhuǎn)換器設(shè)計(jì)
在接收數(shù)據(jù)所遵從的傳輸協(xié)議未知時(shí),先觸發(fā)軟件中斷識(shí)別協(xié)議類型,在傳輸協(xié)議已知時(shí),直接觸發(fā)總線管理線程。任務(wù)可以被阻塞和掛起,支持動(dòng)態(tài)內(nèi)存分配等API函數(shù),對(duì)以太網(wǎng)及RS 232等總線建立線程分別建立總線管理線程。各總線管理線程的流程如圖7所示,根據(jù)觸發(fā)的消息類型,建立和釋放緩沖區(qū),編解碼協(xié)議,觸發(fā)數(shù)據(jù)發(fā)送總線,監(jiān)控總線狀態(tài),協(xié)調(diào)總線發(fā)送通道的使用。在識(shí)別出傳輸協(xié)議為高優(yōu)先級(jí)協(xié)議時(shí),總線管理線程會(huì)調(diào)用API函數(shù)提高自身優(yōu)先級(jí),以達(dá)到搶占CPU的目的,處理完協(xié)議后會(huì)再次恢復(fù)以前的優(yōu)先級(jí)。軟件中斷優(yōu)先級(jí)低于硬件中斷,對(duì)堆棧要求小,用于低優(yōu)先級(jí)協(xié)議的幀頭識(shí)別。采用觸發(fā)跳轉(zhuǎn)至相應(yīng)處理程序的方法可以加快數(shù)據(jù)處理,保證高優(yōu)先級(jí)協(xié)議的實(shí)時(shí)性。各級(jí)線程都會(huì)盡量在等待數(shù)據(jù)或資源時(shí)跳轉(zhuǎn)至阻塞狀態(tài),以便釋放CPU。
4 結(jié)語
本設(shè)計(jì)采用以下幾個(gè)方法保證多協(xié)議轉(zhuǎn)換實(shí)時(shí)性:采用高速DSP加快數(shù)據(jù)處理速度;將協(xié)議分為高低優(yōu)先級(jí),采用FPGA實(shí)時(shí)識(shí)別高優(yōu)先級(jí)協(xié)議,大大提高了高優(yōu)先級(jí)協(xié)議匹配速度;按地址將協(xié)議的幀描述表、數(shù)據(jù)元素描述表、數(shù)據(jù)位描述表等信息存儲(chǔ)與FLAsH,提高了協(xié)議信息的查找效率;使用了DSP/BIOS提供的不同類型線程,并采用觸發(fā)不同消息的方法跳轉(zhuǎn)線程,提高了數(shù)據(jù)處理效率,并保證了高優(yōu)先級(jí)協(xié)議優(yōu)先編解碼。FPGA識(shí)別協(xié)議、DM642編解碼、線程轉(zhuǎn)換所產(chǎn)生的延時(shí)均為微秒級(jí)至幾十微秒級(jí),因此本設(shè)計(jì)在一定程度上可以保證對(duì)高優(yōu)先級(jí)協(xié)議單個(gè)數(shù)據(jù)元素的編解碼延時(shí)小于1 ms,但在支持協(xié)議的通用性上可以進(jìn)一步研究。
評(píng)論