一種串口數(shù)據(jù)幀拼接現(xiàn)象處理研究
發(fā)布時間:2021-01-13 08:23
在某型以FPGA+C8051單片機架構(gòu)的控制模塊內(nèi),采用串行通信總線RS232實現(xiàn)FPGA與單片機之間的數(shù)據(jù)交互;為實現(xiàn)單片機因外部高優(yōu)先級的中斷觸發(fā)串口接收中斷關(guān)閉,導(dǎo)致串口接收再次打開后,出現(xiàn)數(shù)據(jù)幀錯位、數(shù)據(jù)幀拼接現(xiàn)象的異常問題;對單片機接收一幀完整的數(shù)據(jù)幀時長、接收一幀數(shù)據(jù)的處理機制、接收數(shù)據(jù)幀拼接的機制等進(jìn)行研究處理,并在程序內(nèi)設(shè)置監(jiān)測點對串口數(shù)據(jù)幀被外部中斷觸發(fā)中斷的關(guān)閉時長、中斷發(fā)生的頻次等進(jìn)行監(jiān)測;證實了此次串口數(shù)據(jù)幀拼接、數(shù)據(jù)幀錯誤問題引起的因素為單片機串口接收開啟后,受到外部高優(yōu)先級中斷觸發(fā)串口中斷關(guān)閉,在執(zhí)行高優(yōu)先級中斷的同時,FPGA控制軟件端并未停止串口數(shù)據(jù)幀的發(fā)送,在單片機串口中斷重新開啟后,新的串口數(shù)據(jù)幀與單片機關(guān)閉中斷前接收的部分?jǐn)?shù)據(jù)幀進(jìn)行拼接,出現(xiàn)數(shù)據(jù)幀拼接異,F(xiàn)象;且在拼接數(shù)據(jù)幀中含有與通信協(xié)議中數(shù)據(jù)幀幀尾一致的數(shù)據(jù)時,該幀數(shù)據(jù)就會被判讀為正常數(shù)據(jù)幀,從而出現(xiàn)數(shù)據(jù)解析時,數(shù)據(jù)幀有拼接、錯位的異常問題;采用在通信數(shù)據(jù)錯位異常的軟件中增加監(jiān)測信號及相應(yīng)的測試用例對串口接收中斷關(guān)閉時間捕獲,實現(xiàn)了對串口數(shù)據(jù)幀拼接的結(jié)果分析和試驗驗證;對通信數(shù)據(jù)錯位異常采取減...
【文章來源】:計算機測量與控制. 2020,28(08)
【文章頁數(shù)】:8 頁
【部分圖文】:
FPGA+C8051串口通信架構(gòu)圖
在單片機和FPGA之間使用RS232進(jìn)行板內(nèi)通信,該接口用于傳輸單片機通過CP2200從網(wǎng)絡(luò)接收的控制指令、存儲器調(diào)溫輸出的調(diào)溫修正參數(shù)等信息;同時,在FPGA控制模塊對測溫溫度和調(diào)溫控制狀態(tài)信息處理后,通過該串口向單片機模塊發(fā)送相應(yīng)的信息。該系統(tǒng)的硬件設(shè)計如圖2所示。3 系統(tǒng)軟件設(shè)計
該系統(tǒng)的控制軟件由單片機控制軟件和FPGA控制軟件組成。其中,單片機控制軟件通過CP2200的物理層進(jìn)行初始處理及DA模塊、EEPROM模塊的初始化處理后,開始讀取EEPROM內(nèi)存中的溫度修正參數(shù),并通過RS232將溫度修正參數(shù)發(fā)送至FPGA,FPGA接收溫度修正參數(shù)后,實現(xiàn)對讀取AD7606的溫度數(shù)據(jù)進(jìn)行修正處理,并將溫度數(shù)據(jù)、調(diào)溫系統(tǒng)的工作狀態(tài)信息打包后,通過RS232發(fā)送至單片機。單片機控制軟件在接收到CP2200的中斷信息后,進(jìn)入網(wǎng)絡(luò)中斷處理程序,將CP2200網(wǎng)絡(luò)物理層緩沖區(qū)內(nèi)的數(shù)據(jù)讀取后,根據(jù)以太網(wǎng)協(xié)議對信息進(jìn)行解析處理,若信息無錯誤,則將信息傳至鏈路層處理模塊進(jìn)行處理,之后依次將數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)層(IP層)、傳輸層(TCP層)、應(yīng)用層(Modbus層)進(jìn)行解析和處理;若信息為調(diào)溫系統(tǒng)控制信息,則單片機將控制信息通過RS232發(fā)送至FPGA,FPGA接收控制指令后,對控制指令進(jìn)行解析,若控制指令為自動控制指令,則調(diào)溫系統(tǒng)工作在自動工作狀態(tài)下;若指令為手動控制指令,則調(diào)溫系統(tǒng)工作在手動工作狀態(tài)下。FPAG根據(jù)指令輸出調(diào)溫系統(tǒng)的控制信號,并檢測調(diào)溫系統(tǒng)的反饋信號,生成調(diào)溫系統(tǒng)工作狀態(tài)信息。在接收到調(diào)溫系統(tǒng)查詢指令時,將調(diào)溫系統(tǒng)的溫度數(shù)據(jù)和工作狀態(tài)信息通過以太網(wǎng)數(shù)據(jù)幀封裝后,將數(shù)據(jù)發(fā)送上位機軟件。系統(tǒng)軟件控制流程如圖3所示。3.2 網(wǎng)絡(luò)通信軟件流程
【參考文獻(xiàn)】:
期刊論文
[1]淺談基于單片機的數(shù)據(jù)串口通信[J]. 王磊. 山西農(nóng)經(jīng). 2016(18)
[2]基于單片機的數(shù)據(jù)串口通信研究[J]. 蔣信. 電子技術(shù)與軟件工程. 2016(06)
[3]基于多單片機的串口擴(kuò)展設(shè)計[J]. 唐玉兵,龍艦涵. 科技展望. 2015(17)
[4]基于單片機的多串口實現(xiàn)方案[J]. 甘宇紅. 數(shù)字技術(shù)與應(yīng)用. 2012(01)
[5]自制USB轉(zhuǎn)串口線[J]. 劉震宇. 電子制作. 2008(07)
[6]單片機C51與匯編語言混合調(diào)用的實現(xiàn)[J]. 王蘭英,居錦武. 四川理工學(xué)院學(xué)報(自然科學(xué)版). 2008(03)
[7]51系列單片機的串口擴(kuò)展方案[J]. 鮑夢,劉智萍. 軟件導(dǎo)刊. 2008(05)
[8]一種單片機在線仿真方法的實現(xiàn)[J]. 居錦武,王蘭英. 四川理工學(xué)院學(xué)報(自然科學(xué)版). 2008(02)
[9]Windows內(nèi)核線程與用戶線程共享緩沖區(qū)的實現(xiàn)[J]. 王蘭英,居錦武. 內(nèi)江師范學(xué)院學(xué)報. 2008(02)
[10]Keil軟件仿真的串口調(diào)試技巧[J]. 邵子揚,黃保明,劉海濤. 單片機與嵌入式系統(tǒng)應(yīng)用. 2006(07)
碩士論文
[1]基于MPC8247的艦載火控計算機串行通信模塊的設(shè)計和實現(xiàn)[D]. 劉學(xué)文.湖南大學(xué) 2014
本文編號:2974557
【文章來源】:計算機測量與控制. 2020,28(08)
【文章頁數(shù)】:8 頁
【部分圖文】:
FPGA+C8051串口通信架構(gòu)圖
在單片機和FPGA之間使用RS232進(jìn)行板內(nèi)通信,該接口用于傳輸單片機通過CP2200從網(wǎng)絡(luò)接收的控制指令、存儲器調(diào)溫輸出的調(diào)溫修正參數(shù)等信息;同時,在FPGA控制模塊對測溫溫度和調(diào)溫控制狀態(tài)信息處理后,通過該串口向單片機模塊發(fā)送相應(yīng)的信息。該系統(tǒng)的硬件設(shè)計如圖2所示。3 系統(tǒng)軟件設(shè)計
該系統(tǒng)的控制軟件由單片機控制軟件和FPGA控制軟件組成。其中,單片機控制軟件通過CP2200的物理層進(jìn)行初始處理及DA模塊、EEPROM模塊的初始化處理后,開始讀取EEPROM內(nèi)存中的溫度修正參數(shù),并通過RS232將溫度修正參數(shù)發(fā)送至FPGA,FPGA接收溫度修正參數(shù)后,實現(xiàn)對讀取AD7606的溫度數(shù)據(jù)進(jìn)行修正處理,并將溫度數(shù)據(jù)、調(diào)溫系統(tǒng)的工作狀態(tài)信息打包后,通過RS232發(fā)送至單片機。單片機控制軟件在接收到CP2200的中斷信息后,進(jìn)入網(wǎng)絡(luò)中斷處理程序,將CP2200網(wǎng)絡(luò)物理層緩沖區(qū)內(nèi)的數(shù)據(jù)讀取后,根據(jù)以太網(wǎng)協(xié)議對信息進(jìn)行解析處理,若信息無錯誤,則將信息傳至鏈路層處理模塊進(jìn)行處理,之后依次將數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)層(IP層)、傳輸層(TCP層)、應(yīng)用層(Modbus層)進(jìn)行解析和處理;若信息為調(diào)溫系統(tǒng)控制信息,則單片機將控制信息通過RS232發(fā)送至FPGA,FPGA接收控制指令后,對控制指令進(jìn)行解析,若控制指令為自動控制指令,則調(diào)溫系統(tǒng)工作在自動工作狀態(tài)下;若指令為手動控制指令,則調(diào)溫系統(tǒng)工作在手動工作狀態(tài)下。FPAG根據(jù)指令輸出調(diào)溫系統(tǒng)的控制信號,并檢測調(diào)溫系統(tǒng)的反饋信號,生成調(diào)溫系統(tǒng)工作狀態(tài)信息。在接收到調(diào)溫系統(tǒng)查詢指令時,將調(diào)溫系統(tǒng)的溫度數(shù)據(jù)和工作狀態(tài)信息通過以太網(wǎng)數(shù)據(jù)幀封裝后,將數(shù)據(jù)發(fā)送上位機軟件。系統(tǒng)軟件控制流程如圖3所示。3.2 網(wǎng)絡(luò)通信軟件流程
【參考文獻(xiàn)】:
期刊論文
[1]淺談基于單片機的數(shù)據(jù)串口通信[J]. 王磊. 山西農(nóng)經(jīng). 2016(18)
[2]基于單片機的數(shù)據(jù)串口通信研究[J]. 蔣信. 電子技術(shù)與軟件工程. 2016(06)
[3]基于多單片機的串口擴(kuò)展設(shè)計[J]. 唐玉兵,龍艦涵. 科技展望. 2015(17)
[4]基于單片機的多串口實現(xiàn)方案[J]. 甘宇紅. 數(shù)字技術(shù)與應(yīng)用. 2012(01)
[5]自制USB轉(zhuǎn)串口線[J]. 劉震宇. 電子制作. 2008(07)
[6]單片機C51與匯編語言混合調(diào)用的實現(xiàn)[J]. 王蘭英,居錦武. 四川理工學(xué)院學(xué)報(自然科學(xué)版). 2008(03)
[7]51系列單片機的串口擴(kuò)展方案[J]. 鮑夢,劉智萍. 軟件導(dǎo)刊. 2008(05)
[8]一種單片機在線仿真方法的實現(xiàn)[J]. 居錦武,王蘭英. 四川理工學(xué)院學(xué)報(自然科學(xué)版). 2008(02)
[9]Windows內(nèi)核線程與用戶線程共享緩沖區(qū)的實現(xiàn)[J]. 王蘭英,居錦武. 內(nèi)江師范學(xué)院學(xué)報. 2008(02)
[10]Keil軟件仿真的串口調(diào)試技巧[J]. 邵子揚,黃保明,劉海濤. 單片機與嵌入式系統(tǒng)應(yīng)用. 2006(07)
碩士論文
[1]基于MPC8247的艦載火控計算機串行通信模塊的設(shè)計和實現(xiàn)[D]. 劉學(xué)文.湖南大學(xué) 2014
本文編號:2974557
本文鏈接:http://www.lk138.cn/kejilunwen/jisuanjikexuelunwen/2974557.html
最近更新
教材專著