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