基于DSP的CPLD軟件更新方案研究
為實(shí)現本文提出的導航計算機系統中基于DSP的CPLD器件軟件更新串行方案,首先需要在硬件方面解決如下3個(gè)問(wèn)題:
(1)導航計算機系統所用DSP至少要有4個(gè)空余的I/O口,分別用于模擬CPLD的4個(gè)JTAG信號時(shí)序信號。
(2)導航計算機系統必須包含支持一個(gè)UART通信接口,用于接收CPLD的配置文件。此UART接口不能由CPLD參與控制,以避免CPLD某次編程失敗后,該UART通信口不再可用的問(wèn)題。
(3)導航計算機系統應保證足夠的CPLD配置信息文件需要的存儲空間。
本文所用DSP為T(mén)I公司的TMS320C6713B芯片,該款DSP支持16個(gè)通用輸入輸出口(GPIO)。在本導航計算機系統中,有12個(gè)GPIO口已被占用,多余的4個(gè)GPIO口可用來(lái)連接CPLD的4個(gè)JTAG信號引腳。
TMS320C6713B本身并不支持包含UART通信接口,其片上外設中包含2個(gè)多通道緩沖串行接口(McBSP),McBSP接口支持全雙工串行通信,只是收發(fā)數據需要獨立的收發(fā)幀同步信號。根據TI公司提供的應用技術(shù)報告,經(jīng)過(guò)對軟件或硬件進(jìn)行改造設計,McBSP接口可以支持UART通信標準。軟件修改方法是通過(guò)將McBSP接口配置成通用I/O接口來(lái)模擬UART時(shí)序;硬件修改方法是將McBSP接口配置在串行口模式,McBSP接口中接收幀同步信號FSR來(lái)自于UART的發(fā)送數據線(xiàn)Tx,在檢測到Tx的下跳沿時(shí),McBSP內部開(kāi)始采樣接收數據,之后Tx的下跳沿將被忽略直至下一個(gè)字節的起始位再次觸發(fā)內部幀接收新的數據;發(fā)送幀同步信號FSR由McBSP電路在發(fā)送UART數據起始位時(shí)產(chǎn)生。本文采用硬件修改和過(guò)采樣軟件措施,將一個(gè)多通道緩沖串行接口McBSP0設計成了支持UART通信標準的接口。
本導航計算機系統使用的CPLD配置信息文件是串行矢量格式(SVF),可以在Xilinx軟件開(kāi)發(fā)平臺ISE上生成。SVF是一種用來(lái)描述IEEE1149.1(JTAG)總線(xiàn)操作的規范,包含了編程需要的指令和數據,描述了TAP測試訪(fǎng)問(wèn)端口狀態(tài)圖中各狀態(tài)之間的掃描操作過(guò)程和行為。由于SVF文件是ASCII格式,所以占用的存儲空間比較大,可以將其轉換為一種更簡(jiǎn)潔和緊湊的二進(jìn)制格式:XSVF文件。對于本系統所用CPLD器件而言,僅對其進(jìn)行編程操作時(shí),XSVF文件大小為129720B,加上擦除和校驗操作后,XSVF文件大小為259533B。根據上述分析,本文設計的嵌入式導航計算機系統中通過(guò)UART接口對CPLD器件進(jìn)行在系統軟件更新的硬件電路結構如圖3所示。
圖3中,UART通信口由DSP片上多通道緩沖串行口McBSP0實(shí)現。為了存儲通過(guò)UART口接收到的包含CPLD配置信息的XSVF文件,本系統外擴了一片512kB的SRAM。FLASH芯片用來(lái)存儲導航計算機系統升級固件和應用程序。CPLD的JTAG口直接與DSP空閑的4個(gè)GPIO口相連,為了提高CPLD器件編程的靈活性,在本系統中保留了連接PC機并口的CPLD程序下載接口。
評論