FPGA在彈上信息處理機中的應用
如果上電或復位時(shí)出現問(wèn)題,FPGA使用缺省參數自動(dòng)初始化所有參數并自動(dòng)進(jìn)行后續工作。
(2)20ms緩沖區切換信號同步
完成初始化后,FPGA內部的“20ms緩沖區切換信號”生成邏輯,自動(dòng)執行和“1.28M同步輸入串口”的同步過(guò)程,同步過(guò)程中不向外發(fā)送任何數據,一旦同步后,會(huì )給出同步鎖定信號Sync Locked=“1”,所有通道的數據采集工作均開(kāi)始,進(jìn)入遙測信息接收過(guò)程。
(3)遙測信息接收
通道的數據采集都以FPGA內部產(chǎn)生的“20ms緩沖區切換信號SwitchBuf”為20ms周期標志進(jìn)行緩沖區的切換(雙端口),分別為A,B兩個(gè)緩沖區。
1.28M通道在20ms內應完成32×100=3200 Bytes的數據接收。并根據字計數器反轉當前的SwitchBuf信號。
4M 1553B通道應由ARM完成4M 1553B總線(xiàn)遙測數據的接收、過(guò)濾、打包,形成20ms內約1500 Bytes的遙測數據包填入分配給它的包緩沖區,由FPGA自動(dòng)生成對應的包長(cháng)度信息放入一個(gè)包長(cháng)度FIFO中。此后,ARM重新開(kāi)始下一20ms數據接收工作,如此反復循環(huán)下去。組幀狀態(tài)機(MFSTM)在組幀過(guò)程中,一旦發(fā)現包長(cháng)度FIFO不空,就從包緩沖區FIFO中讀取對應長(cháng)度的數據包,按照規定格式和位置填入數據融合表。
38.4k異步串行輸入通道由FPGA的UART IP核完成串行輸入數據的接收,IP核根據字間隔是否超過(guò)2個(gè)字的接收時(shí)間來(lái)判斷是否完成一幀的接收,原理和1553總線(xiàn)數據的接收相同。
115.2k異步串行輸入通道由FPGA的UART IP核完成串行輸入數據的接收。緩沖區由一個(gè)FIFO組成。組幀狀態(tài)機會(huì )隨時(shí)查詢(xún)該FIFO空滿(mǎn)狀態(tài),若不空,則就開(kāi)始連續的讀取過(guò)程,每間隔200ms從FIFO中讀取一個(gè)數據并按照規定格式和位置填入數據融合表,直到該FIFO的數據取完為止,若為空,則新幀對應通道的位置數據填零。
(4)組幀
組幀工作即遙測數據的數據融合,將各路遙測信息按照給定的數據融合格式組織成一個(gè)完整的100幀(1幀200ms,100幀20ms)格式進(jìn)行發(fā)送,該功能由設計在FPGA內部“組幀狀態(tài)機(MFSTM)IP”完成。
(5)數據融合表
上電復位后,組幀狀態(tài)機MFSTM等待同步鎖定信號Sync Locked=“1”后開(kāi)始工作,并根據20ms緩沖區切換信號SwitchBuf進(jìn)行周期性的切換。按照數據融合表設計好的順序依次訪(fǎng)問(wèn)1.28M同步輸入串口緩沖區、4M 1553B總線(xiàn)數據緩沖區、115.2k異步輸入串口緩沖區、38.4k異步輸入串口緩沖區等等,并讀取指定數量的數據依次填入本次20ms的數據融合表中,重復100次,從而完成表中1~100行數據的填寫(xiě)。數據融合表的數據結構設計成FIFO,使用FIFO可以平衡快速的組幀狀態(tài)機和慢速的發(fā)送狀態(tài)機之間的速度差異,使發(fā)送的數據流保持在2.56Mbps的波特率之下,持續發(fā)送。
(6)發(fā)送
數據融合表的發(fā)送則由“發(fā)送狀態(tài)機(SendSTM) IP”完成。它以數據融合表FIFO、2.56M發(fā)送時(shí)鐘為輸入,一旦啟動(dòng)就不再停止。發(fā)送狀態(tài)機首先查詢(xún)數據融合表FIFO, 若FIFO為空,則等待;若FIFO不空,則以2.56M/8的固定時(shí)鐘頻率持續讀取數據融合表FIFO的數據,再送入“15段加擾器”進(jìn)行加擾,加擾后的數據和時(shí)鐘經(jīng)RS422驅動(dòng)電路轉化為RS422差分形式發(fā)送給加密器,即2.56M輸出。
評論