基于DM642的實時多協(xié)議轉換器設計
3 軟件設計
3.1 協(xié)議存儲、加載方法
為了使上電復位后無需重新加載協(xié)議,將協(xié)議描述表存儲于FLASH中,FLASH的分配方法的存儲空間分配方法如圖5所示。本文引用地址:http://cafeforensic.com/article/194140.htm
8 MB存儲空間的前128 KB存儲空間用于存儲DSP程序,剩余的空間劃分為252個32 KB大小的數據塊,每個數據塊用于存儲一條協(xié)議的所有信息;每個32 KB大小數據塊在劃分為512個64 B大小的次級數據塊,第1個次級數據塊用于存儲數據幀描述表,后511個次級數據塊存儲數據元素的相關信息;64 B存儲空間的前32 B用于存儲數據元素描述表,后32 B用于存儲數據位描述表,同一個數據元素最多支持8個數據位操作。采用這種協(xié)議存儲方法的好處是,方便了協(xié)議的加載及修改,DM642很容易計算出每個數據幀、數據元素、數據位描述表的地址,加快了協(xié)議信息的查找,但對存儲空間的浪費也比較大。
3.2 DSP程序設計
軟件程序調用CCS 2提供實時操作系統(tǒng)DSP/BIOS,DSP/BIOS采用搶先式多任務內核,支持硬件中斷、軟件中斷、任務、后臺線程等4種線程,并提了同步機制。在DSP/BIOS下調用NDK的函數庫進行TCP/IP協(xié)議編程時,需配置EMAC并開啟線程監(jiān)控網絡接口,參考文獻詳細介紹了DSP/BIOS下的TCP/IP協(xié)議編程,這里把網絡總線視為普通接口。
為了保證系統(tǒng)實時性,需合理使用DSP/BIOS提供的不同類型線程,并協(xié)調好各線程間的通信。協(xié)議及各總線的配置數據均存儲于FLAS-H,也上電后通過以太網在線動態(tài)加載至DM642。在主線程中對DM642和FPGA進行初始化配置。硬件中斷的實時性最高,監(jiān)控各總線狀態(tài),并根據從FPGA讀回的中斷信息,生成相應消息并觸發(fā)軟件中斷和線程。硬件中斷的流程如圖6所示,依次掃描各總線中斷信息,根據中斷信息觸發(fā)總線異常、接收數據、幀頭識別、協(xié)議接收完成、發(fā)送完成等中斷的處理程序。
評論