本發(fā)明涉及故障注入技術(shù),特別是一種基于DSP和FPGA的總線故障注入系統(tǒng)。
背景技術(shù):
近幾來,RS-422、RS-485總線,因其高實時性和高靈活性被廣泛采用,但是在實際應(yīng)用中,要保證總線系統(tǒng)的高可靠性,總線測試必不可少。
現(xiàn)有的測試方法大多采用正向測試的模式,針對輸入的激勵,測試輸出的響應(yīng);即使現(xiàn)有的一些采取故障注入的測試方法,也僅僅是進行物理層次和協(xié)議層次的故障模擬,對信號注入短路、斷路、串/并阻抗、信號替換、信號延時等數(shù)字部分故障,對信號的模擬部分的故障注入覆蓋不全面,而實際總線運行中會面對各種各樣的狀態(tài)及環(huán)境變化。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于DSP和FPGA的總線故障注入系統(tǒng),能夠模擬總線通信時硬件在實際運行過程中發(fā)生的故障。
實現(xiàn)本發(fā)明目的的技術(shù)解決方案為:一種基于DSP和FPGA的總線故障注入系統(tǒng),包括DSP主處理器、FPGA、上位機、以太網(wǎng)接口模塊、DA模塊、RS422接口模塊、RS485接口模塊、繼電器網(wǎng)絡(luò)、電阻網(wǎng)絡(luò)和存儲模塊;
所述RS422接口模塊和RS485接口模塊設(shè)置在串口總線和FPGA之間,用于接收串口總線上的數(shù)據(jù),并發(fā)送給FPGA;
所述FPGA通過數(shù)據(jù)總線、地址總線與DSP主處理器相連,將接收的數(shù)據(jù)發(fā)送給DSP主處理器;
所述DSP主處理器通過以太網(wǎng)接口模塊與上位機連接,接收上位機發(fā)送的故障指令,根據(jù)對應(yīng)的故障指令對接收的數(shù)據(jù)進行故障注入,生成故障注入后的數(shù)據(jù);
所述FPGA通過DA模塊與設(shè)備端連接,DA模塊用于將故障注入后的數(shù)據(jù)轉(zhuǎn)換為模擬量輸出;
所述繼電器網(wǎng)絡(luò)和電阻網(wǎng)絡(luò)設(shè)置在DA模塊與設(shè)備端之間,通過FPGA控制繼電器斷開和連接,所述電阻網(wǎng)絡(luò)用于模擬串行阻抗或并行阻抗。
本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點為:1)本發(fā)明在不改變提供激勵源的測試設(shè)備與被測設(shè)備信號的前提下,通過串接在總線系統(tǒng)中的故障注入單元來進行所需故障的配置,改變通信信號,實現(xiàn)在總線設(shè)備正常通信中加入各種故障的功能;2)本發(fā)明采用硬件故障注入方法,由模擬量輸出故障注入后的信號,模擬硬件在實際運行過程中發(fā)生的故障;3)本發(fā)明在應(yīng)用中可以根據(jù)約定的波特率,通過上位機人機交互界面設(shè)置串行接收波特率,可以直接作為一個模塊靈活應(yīng)用于不同的波特率通信系統(tǒng),具有很強的靈活性;4)本發(fā)明具有良好的可視化界面,通過以太網(wǎng)通信,可以傳輸故障注入命令,可以實時的注入故障;5)本發(fā)明通過FPGA直接控制各個模塊,降低了系統(tǒng)成本,簡化了電路設(shè)計,具有較高的性價比。
附圖說明
圖1是本發(fā)明基于DSP和FPGA的總線故障注入系統(tǒng)整體結(jié)構(gòu)圖。
圖2是本發(fā)明基于DSP和FPGA的總線故障注入系統(tǒng)的硬件結(jié)構(gòu)圖。
圖3是本發(fā)明基于DSP和FPGA的總線故障注入系統(tǒng)的RS422接口模塊原理圖。
圖4是本發(fā)明基于DSP和FPGA的總線故障注入系統(tǒng)的繼電器輸出原理圖。
圖5是本發(fā)明基于DSP和FPGA的總線故障注入系統(tǒng)的繼電器、電阻網(wǎng)絡(luò)示意圖。
圖6是本發(fā)明基于DSP和FPGA的總線故障注入系統(tǒng)的DA模塊原理圖。
圖7是本發(fā)明基于DSP和FPGA的總線故障注入系統(tǒng)的上、下位機流程圖。
具體實施方式
結(jié)合圖1、圖2,本發(fā)明的一種基于DSP和FPGA的總線故障注入系統(tǒng),包括DSP主處理器、FPGA、上位機、以太網(wǎng)接口模塊、DA模塊、RS422接口模塊、RS485接口模塊、繼電器網(wǎng)絡(luò)、電阻網(wǎng)絡(luò)和存儲模塊;
所述RS422接口模塊和RS485接口模塊設(shè)置在串口總線和FPGA之間,用于接收串口總線上的數(shù)據(jù),并發(fā)送給FPGA;
所述FPGA通過數(shù)據(jù)總線、地址總線與DSP主處理器相連,將接收的數(shù)據(jù)發(fā)送給DSP主處理器;
所述DSP主處理器通過以太網(wǎng)接口模塊與上位機連接,接收上位機發(fā)送的故障指令,根據(jù)對應(yīng)的故障指令對接收的數(shù)據(jù)進行故障注入,生成故障注入后的數(shù)據(jù);
所述FPGA通過DA模塊與設(shè)備端連接,DA模塊用于將故障注入后的數(shù)據(jù)轉(zhuǎn)換為模擬量輸出;
所述繼電器網(wǎng)絡(luò)和電阻網(wǎng)絡(luò)設(shè)置在DA模塊與設(shè)備端之間,通過FPGA控制繼電器斷開和連接,所述電阻網(wǎng)絡(luò)用于模擬串行阻抗或并行阻抗。
進一步的,以太網(wǎng)接口模塊采用W5300芯片,DSP嵌入式處理器為ADSP-BF532芯片。
進一步的,RS422接口模塊、RS485接口模塊均包括65LBC184接口芯片和光耦芯片6N137,65LBC184接口芯片用于RS422電平與TTL電平轉(zhuǎn)換,光耦芯片6N137用于與FPGA的信號隔離。
進一步的,DA模塊包括4通道的AD5544轉(zhuǎn)換芯片和OP2177運算放大器,4通道的AD5544轉(zhuǎn)換芯片用于數(shù)模轉(zhuǎn)換,OP2177運算放大器用于電壓幅度調(diào)節(jié)、共模電壓調(diào)節(jié)。
進一步的,繼電器網(wǎng)絡(luò)由TPIC6B595芯片驅(qū)動繼電器,實現(xiàn)并行輸出;通過FPGA控制繼電器的通斷,實現(xiàn)物理層次的短路、斷路、串/并行阻抗的故障注入。
進一步的,F(xiàn)PGA直接控制RS422/RS485模塊、DA模塊、繼電器網(wǎng)絡(luò),實現(xiàn)RS422/RS485串行信號的接收,并將其轉(zhuǎn)換成并行信號交于DSP處理;FPGA采用三線串行方式控制輸出狀態(tài),輸出串行數(shù)據(jù)轉(zhuǎn)換時鐘、TPIC6B595的片選信號以及串行輸出數(shù)據(jù),通過TPIC6B595芯片實現(xiàn)并行輸出;FPGA采用四線串行方式控制DA模塊,輸出串行數(shù)據(jù)時鐘、AD5544的片選信號、串行輸出數(shù)據(jù)以及串行數(shù)據(jù)加載信號。
本發(fā)明通過串接在總線中來進行所需故障的配置,由RS422/RS485接口模塊接收總線上的信號,經(jīng)過DSP處理后,通過FPGA控制DA模塊輸出注入故障后的信號,實現(xiàn)在總線設(shè)備正常通信中實時加入各種故障。
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明確,結(jié)合附圖和實施例對本發(fā)明進行詳細介紹。
實施例
如圖1所示,基于DSP和FPGA的總線故障注入系統(tǒng),在不改變提供激勵源的測試設(shè)備與被測設(shè)備信號的前提下,通過掛接在總線系統(tǒng)中的故障注入單元來進行所需故障模式的配置,改變通信信號,實現(xiàn)在總線設(shè)備正常通信中實時加入各種故障的功能。
如圖2和圖7,基于DSP和FPGA的總線故障注入系統(tǒng)包括上位機和下位機兩個部分,上位機利用組態(tài)王設(shè)計提供人機交互界面,用來接收操作人員下達的故障命令,并將故障命令發(fā)送給下位機。下位機上電之后首先對DSP、FPGA、W5300等進行初始化,接著根據(jù)實際通信波特率設(shè)置串行信號接收波特率,等待上位機故障注入命令,接收到故障命令后,根據(jù)故障要求通過控制DA模塊,繼電器網(wǎng)絡(luò),輸出故障注入后的信號。
如圖2所示,一種基于DSP和FPGA的RS422/RS485總線故障注入系統(tǒng),包括DSP主處理器、FPGA協(xié)處理器、上位機、以太網(wǎng)接口模塊、DA模塊、RS422接口模塊、RS485接口模塊、繼電器網(wǎng)絡(luò)和電阻網(wǎng)絡(luò)。DSP主處理器通過以太網(wǎng)接口模塊與上位機連接,接收上位機發(fā)送的故障命令,與FPGA通過數(shù)據(jù)總線、地址總線相連;RS422接口模塊、RS485接口模塊作為串口通信模塊,連接在FPGA與串行總線之間;RS422接口模塊、RS485接口模塊與FPGA通過電平轉(zhuǎn)換芯片LVC4245A連接,實現(xiàn)5V與3.3V電平轉(zhuǎn)換;繼電器網(wǎng)絡(luò)、電阻網(wǎng)絡(luò)以及DA模塊與FPGA連接,由FPGA控制輸出。
結(jié)合圖2、圖3和圖6,RS422/RS485接口模塊采用65LBC184接口芯片,完成RS422電平與TTL轉(zhuǎn)換,并通過光耦芯片6N137實現(xiàn)與FPGA的信號隔離;DA模塊采用4通道的AD5544轉(zhuǎn)換芯片,完成數(shù)模轉(zhuǎn)換,選擇OP2177運算放大器,完成電壓幅度調(diào)節(jié)、共模電壓調(diào)節(jié),從而實現(xiàn)電氣層次的故障注入;繼電器網(wǎng)絡(luò)經(jīng)過TPIC6B595芯片驅(qū)動繼電器實現(xiàn)并行輸出,通過FPGA控制繼電器的通斷,實現(xiàn)物理層次的短路、斷路、串/并行阻抗的故障注入。
結(jié)合圖2-圖4,F(xiàn)PGA內(nèi)部RS422/RS485模塊軟件設(shè)計,包括串行波特率生成單元,串行接收單元和串行發(fā)送單元,實現(xiàn)串行收發(fā)模塊功能,接收串行信號波特率,可以根據(jù)實際接收信號的波特率,由上位機人機界面設(shè)置,通過對時鐘信號分頻實現(xiàn)。串行接收單元采用多級D觸發(fā)器串接,將接收到的輸入串行數(shù)據(jù)流轉(zhuǎn)換為并行數(shù)據(jù)后,進行后續(xù)的處理;FPGA內(nèi)部輸出模塊采用三線串行方式控制輸出狀態(tài),輸出串行數(shù)據(jù)轉(zhuǎn)換時鐘、TPIC6B595的片選信號以及串行輸出數(shù)據(jù),通過TPIC6B595芯片驅(qū)動繼電器并行輸出;通過FPGA控制不同繼電器的通斷,可以在線路不同部位間連接電阻,從而實現(xiàn)RS422/RS485總線短路、斷路、串/并行阻抗等物理層次的故障注入。
結(jié)合圖2和圖5,F(xiàn)PGA內(nèi)部DA模塊采用四線串行方式控制DA模塊,輸出串行數(shù)據(jù)時鐘、AD5544的片選信號、串行輸出數(shù)據(jù)以及串行數(shù)據(jù)加載信號,控制AD5544的兩個通道分別輸出不同的電壓值作為差分信號對,可以靈活的進行電壓值的設(shè)定,從而實現(xiàn)RS422/RS485總線電壓幅度調(diào)節(jié)、共模電壓調(diào)節(jié),輸入電壓閾值調(diào)節(jié)等電氣層次的故障注入。同時通過FPGA,將接收的數(shù)據(jù)存入其FIFO模塊實現(xiàn)延時故障;將接收的數(shù)據(jù)替換成不同的數(shù)據(jù),如第一位數(shù)據(jù)位翻轉(zhuǎn),再由DA輸出,實現(xiàn)數(shù)據(jù)替換;或者改變DA模塊輸出速率實現(xiàn)傳輸速率的調(diào)節(jié),進行協(xié)議層次的故障注入。