典型的嵌入式系統設計和實現
1.確定嵌入式系統的需求;
2.設計系統的體系結構:選擇處理器和相關外部設備,操作系統,開發平臺以及軟硬件的分割和總體系統集成;
3.詳細的軟硬件設計和rtl代碼、軟件代碼開發;
4.軟硬件的聯調和集成;
5.系統的測試。
一、步驟1:確定系統的需求:
嵌入式系統的典型特征是面向用戶、面向產品、面向應用的,市場應用是嵌入式系統開發的導向和前提。一個嵌入式系統的設計取決于系統的需求。
1、mvb總線簡介
列車通信網(train communication network,簡稱tcn)是一個集整列列車內部測控任務和信息處理任務于一體的列車數據通訊的iec國際標準(iec-61375-1), 它包括兩種總線類型絞線式列車總線(wtb)和多功能車廂總線(mvb)。
tcn在列車控制系統中的地位相當與can總線在汽車電子中的地位。多功能車輛總線mvb是用于在列車上設備之間傳送和交換數據的標準通信介質。附加在總線上的設備可能在功能、大小、性能上互不相同,但是它們都和mvb總線相連,通過mvb總線來交換信息,形成一個完整的通信網絡。在mvb系統中,根據iec-61375-1列車通信網標準, mvb總線有如下的一些特點:
拓撲結構:mvb總線的結構遵循osi模式,吸取了iso的標準。支持最多4095個設備,由一個中心總線管理器控制。簡單的傳感器和智能站共存于同一總線上。
數據類型:mvb總線支持三種數據類型:
a.過程數據:過程變量表示列車的狀態,如速度、電機電流、操作員的命令。過程變量的值叫過程數據。它們的傳輸時間是確定的和有界的。為保證這一延遲時間,這些數據被周期性地傳送。
b.消息數據:消息被分成小的包,這些包分別被編號并由目的站確認。消息包及與之相關的控制數據形成消息數據。消息數據以命令方式傳輸。功能消息被應用層所使用;服務消息用于列車通信系統自身的管理等。
c.監視數據:是短的幀,主設備用它作同一總線內設備的狀態校驗、聯機設備的檢測、主權傳輸、列車初運行和其它管理功能。
介質訪問形式:mvb總線支持rs485銅介質和光纖。其物理層的數據格式為1.5mbps串行曼徹斯特編碼數據。
mvb的介質訪問是由總線管理器ba進行管理的,總線管理器ba是唯一的總線主設備,所有其它設備都是從設備。主設備按照某種預定的順序對端口進行周期性輪詢,在周期的間隔中,主設備轉而處理偶發性請求。
可靠性措施:mvb容錯措施包括
發送的完整性:鏈路層有擴充的檢錯機制,該機制提供的漢明碼距為8,可檢測位、幀和同步錯誤。
故障的獨立性:通常對銅介質進行完全雙份配置,以確保設備故障的獨立性。
發送的可用性:可用性可以通過介質冗余、電源冗余、管理器冗余等措施得以提高。
2、mvb系統的基本需求如下:
a. 完全與iec-61375-1(tcn) 國際標準兼容,支持mvb總線定義的三種數據類型過程數據,消息數據,監視數據。
b. 系統可配置成為:
i. 總線管理器(ba)功能
ii. 總線管理器(ba)功能和通信功能
iii. 獨立的通信功能
c. 采用arm7tdmi的處理器
d. 采用實時操作系統
e. 供tcn的實時協議棧協議(rtp)
f. 支持 4096 邏輯端口的過程數據
g. 支持與上位pc104主機的雙口ram接口
h. 輸入電壓5v
i. 工作環境溫度:-40℃~75℃
3、其他需求 多功能車輛總線mvb系統與用戶的列車控制系統同步設計,有著嚴格的時間限制。
二、步驟2:設計系統的體系結構,協同分配硬件/軟件方面的要求
嵌入式系統包含硬件和軟件兩部分:硬件架構上以嵌入式處理器為中心,配置存儲器、i/o設備、通信模塊等必要的外設;軟件部分以軟件開發平臺為核心,向上提供應用編程接口(api),向下屏蔽具體硬件特性的板級支持包bsp。嵌入式系統中,軟件和硬件緊密配合,協調工作,共同完成系統預定的功能。根據osi的七層模型可以確定鏈路層和物理層由硬件實現,其他各層由軟件實現,如圖1。
圖1:mvb的osi模型和mvb系統軟硬件劃分。
1、嵌入式操作系統選擇:
*通常而言,為一個嵌入式系統選擇操作系統要考慮如下幾個因素:
*操作系統支持的微處理器
*操作系統的性能
*操作系統的軟件組件和設備驅動程序
*操作系統的調試工具,開發環境、在線仿真器(ice)、編譯器、匯編器、連接器、調試器以及模擬器等等
*操作系統的標準兼容性
*操作系統的技術支持程度
*操作系統是提供源代碼還是目標代碼
*操作系統的許可使用情況
*操作系統的開發者聲譽狀況
根據系統的需求和以上的原則,在mvb系統中采用了vxworks實時操作系統,vxworks是風河公司(windriver)開發的實時操作系統之一,以其優秀的可靠性、實時性及內核的可裁減性,被廣泛應用于通信、軍事、航天、航空、工業控制等關鍵行業領域,其開發環境為tornado。
2、處理器的選擇:在為嵌入式系統選擇處理器時需要考慮以下幾個方面:
*性能:處理器必須有足夠的性能執行任務和支持產品生命周期。
*工具支持:支持軟件創建、調試、系統集成、代碼調整和優化工具對整體項目成功與否非常關鍵。
*操作系統支持:嵌入式系統應用需要使用有幫助的抽象來減少其復雜性。
*開發人員過去的處理器經驗:擁有處理器或處理器系列產品的開發經驗可以減少可觀的學習新處理器、工具和技術的時間。
*成本,功耗,產品上市時間,技術支持等等
在本系統的設計中,綜合以上各方面的因素,考慮到處理器性能,操作系統支持以及列車上嚴酷的工業環境等等,在mvb系統中選用了atmel用于工業控制領域的工業級的at91系列arm處理器at91m40800,它是基于arm7tdmi內核,內含高性能的32位risc處理器、16位高集成度指令集、8kb片上sram、可編程外部總線接口(ebi)、3通道16位計數器/定時器、32個可編程i/o口、中斷控制器、2個usart、可編程看門狗定時器、主時鐘電路和dram時序控制電路,并配有高級節能電路;同時,可支持jtag調試,主頻可達到40mhz。
3、相關外部設備的選擇:
在確定操作系統和處理器之后,就可以確定相關的外部設備,如flash,ram,串口等等。在mvb系統中,mvb控制器mvbc(multifunction vehicle bus controller)是一個mvb電路和實際的物理設備之間的接口控制器,它的主要功能是實現mvb總線信號與數據幀的編解碼,糾錯等功能,是本系統中要實現的關鍵的硬件模塊。由于系統規模,上市時間等方面的要求,系統暫時不考慮asic實現,因此在mvb系統中用fpga來實現這個關鍵模塊,fpga是asic最靈活和最合算的替代方案。考慮到系統需求與fpga資源,成本,供貨情況等因素,最終選擇了altera公司的cyclone系列fpga,其開發工具是quartus ii。
4、mvb系統架構
由以上的需求分析和選型,完整的系統硬件架構和軟件架構如圖2圖3所示。
圖2:mvb系統的硬件架構。
圖3:mvb系統的軟件架構。
其中,處理器和 mvbc通過traffic memory(tm)進行通訊數據交換,所有軟件和mvbc要交換的控制信息和數據都可以在tm地址空間中找到,這個地址空間對處理器和mvbc都是可訪問的。其示意圖4如下
圖4:traffic memory。
三、步驟3:詳細的軟硬件設計和rtl代碼、軟件代碼開發
在系統架構確定的基礎上,詳細的軟硬件設計就可以開始了。
1、硬件設計
硬件設計設計包括了mvb控制器的fpga設計和mvb總線系統的板級設計,其中關鍵的mvb控制器的設計如圖5
圖5:mvb控制器的框圖。
如圖所示,mvb控制器包含以下功能模塊:
*編碼器:產生曼徹斯特編碼,傳送數據幀
*發送緩沖區:作為要發送的數據和crc檢測值的緩沖區
*譯碼器:接收、曼徹斯特譯碼,數據提取、數據錯誤檢測
*接收緩沖區:作為接收端數據和crc結果的緩沖區
*報文分析單元:檢測主幀和從幀超時,幀誤檢測、錯誤狀態報告
*狀態控制寄存器:mvbc配置
*主控單元:支持mvbc作為主設備或者從設備工作,支持隊列消息傳送
*設備地址讀取和儲存單元:硬件定義的設備地址可以被不同的值覆蓋
*地址邏輯:把cpu對mvbc內部寄存器進行訪問的輸入地址進行解析;產生mvbc訪問tm的輸出地址
*總線復用、轉換單元:處理mvbc內部的數據傳送
*中斷邏輯:支持16種中斷源;
*通用定時器:兩個定時輸出信號,可提供給系統同步使用
*時鐘產生電路:產生所有mvbc工作的時鐘和計數器
2、軟件設計
由于在mvb系統中,過程數據,消息數據,監視數據是三種不同的通訊機制,因此,mvb系統軟件的模塊設計如圖6。
圖6:mvb系統軟件模塊。
四、軟硬件的聯調和集成
下面,以一個簡單的例子來說明mvb系統的軟硬件的集成和驗證。
過程數據在mvb系統中是周期性發送的數據,其在本系統中的通訊機制如下:對于發送方,用戶應用模塊將一個端口的過程變量發送給過程數據處理模塊,過程數據處理模塊按照邏輯端口的設置定時通過鏈路層接口模塊更新traffic memory當中的相應邏輯端口的數據,此時發送方軟件的任務完成。發送方的mvbc硬件接收總線管理器ba定時發出的主幀,通過譯碼器解碼得到相應的邏輯端口的值,通過查詢traffic memory相關的邏輯端口發送設置后將mvbc自動設置為發送狀態,將邏輯端口的數據作為過程數據從幀通過編碼器發出,如圖7所示:
圖7:過程數據通訊示例。
對于接收方,其接收過程與發送方相逆,接收方的mvbc硬件接收總線管理器ba定時發出的主幀,通過譯碼器解碼得到相應的邏輯端口的值,通過查詢traffic memory相關的邏輯端口接收設置后將mvbc自動設置為接收狀態將,在收到發送方發出的從幀后更新相應邏輯端口在traffic memory的數據并發出中斷信號從而完成硬件的接收過程。接收方的軟件可以用中斷或定時查詢的方式通過過程數據處理模塊得到更新后的邏輯端口的過程數據
五、系統的測試
在本系統中,系統的測試即包括了軟件的測試,也包括了硬件,fgpa的測試,在本文中不再贅述。
結束語
上述的mvb系統現已運行在列車控制系統中,成功實現對列車的運行控制、機車控制、車輛控制、狀態監測、故障診斷。當然,如有需要,本文中的mvb系統可以轉化成為asic設計,從而成為一個soc的嵌入式系統。
評論