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