• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于異構(gòu)多核的焊接集控器人機(jī)交互設(shè)計

      2022-01-07 03:31:20曾敏袁松石永華胡子鑫王卓然
      焊接 2021年11期
      關(guān)鍵詞:間通信實(shí)時性內(nèi)核

      曾敏, 袁松, 石永華, 胡子鑫, 王卓然

      (華南理工大學(xué),廣州 510641)

      0 前言

      在智能爬行式焊接機(jī)器人應(yīng)用中,現(xiàn)場環(huán)境復(fù)雜,焊接集控器往往需要同時協(xié)調(diào)控制多臺從機(jī)設(shè)備,包括爬行式焊接機(jī)器人運(yùn)動控制裝置、工業(yè)相機(jī)、焊接電源、送絲機(jī)等從機(jī)[1-3],因此焊接集控器往往采用多控制器組合來處理這些任務(wù),提升了系統(tǒng)的硬件復(fù)雜性,且多控制器間的通信速率慢,通信管理復(fù)雜[4-6]。其中需要人機(jī)交互終端對焊接過程的參數(shù)設(shè)定、電源控制、焊接啟停、故障監(jiān)控進(jìn)行控制[7],加重了集控器處理器的運(yùn)算負(fù)擔(dān),影響焊接過程的實(shí)時性。

      基于以上原因,該焊接集控器使用異構(gòu)多核的STM32MP157處理器作為集控器核心,包含了雙核A7以及單核M4內(nèi)核,可以在A7內(nèi)核和M4內(nèi)核運(yùn)行Linux操作系統(tǒng)[8]和FreeRTOS實(shí)時系統(tǒng),觸摸屏選用威綸通MT6071iE模塊。人機(jī)交互模塊通信任務(wù)運(yùn)行在集控器的M4內(nèi)核中,主體焊接控制任務(wù)運(yùn)行在Linux系統(tǒng),實(shí)現(xiàn)軟件分層設(shè)計,實(shí)現(xiàn)對主體焊接控制任務(wù)的解耦,利用核間通信任務(wù)的高速率特性[9-10],提高了整體焊接系統(tǒng)的實(shí)時性,且只需要單控制器芯片即可滿足集控器對各從機(jī)及人機(jī)交互模塊通信的需求,降低了硬件的復(fù)雜性,并利用組態(tài)軟件EasyBuilder Pro對人機(jī)界面進(jìn)行設(shè)計,提升了人機(jī)界面軟件設(shè)計和界面設(shè)計的效率。

      1 系統(tǒng)硬件設(shè)計

      焊接集控器以異構(gòu)多核控制器STM32MP157為核心,該芯片由ST公司于2019年推出,內(nèi)部具有雙核Coretex-A7內(nèi)核及Cortex-M4內(nèi)核,通過OpenAMP開源框架進(jìn)行核間數(shù)據(jù)高速通信。焊接集控器電路集成了雙路RS485接口,分別與送絲機(jī)、焊接電源通信,通過USB2.0接口與工業(yè)相機(jī)連接。此外,利用STM32MP157的MII接口與PHY芯片RTL8211F實(shí)現(xiàn)千兆RJ45網(wǎng)口通信,與爬行機(jī)器人運(yùn)動驅(qū)動器通信,而人機(jī)交互模塊則通過RS232接口與焊接集控器實(shí)現(xiàn)點(diǎn)對點(diǎn)通信,確保了焊接集控器的抗擾性與實(shí)時性。焊接集控器的硬件框圖如圖1所示。

      圖1 焊接集控器硬件框圖

      2 系統(tǒng)軟件設(shè)計

      焊接集控器需要控制爬行式焊接機(jī)器人運(yùn)動控制裝置、工業(yè)相機(jī)、焊接電源、送絲機(jī)設(shè)備的運(yùn)行及與人機(jī)交互模塊的通信,將這些任務(wù)都運(yùn)行在單一內(nèi)核中很難保證焊接過程的實(shí)時性,也不利于程序編寫,因此需要將人機(jī)交互任務(wù)與主焊接任務(wù)解耦,這里使用靜態(tài)劃分的方法,將人機(jī)交互通信任務(wù)在Cortex-M4內(nèi)核中運(yùn)行,而主焊接任務(wù)在雙核Cortex-A7中運(yùn)行,降低對焊接任務(wù)的影響,進(jìn)而提高整體焊接控制的實(shí)時性,如圖2所示,為焊接集控器軟件框圖。

      圖2 焊接集控器軟件框圖

      2.1 異構(gòu)多核加載與啟動

      一般嵌入式系統(tǒng)的啟動流程為鏈?zhǔn)絾?,每個環(huán)節(jié)中前者為后者提供了運(yùn)行環(huán)境及加載下一環(huán)節(jié)啟動代碼。焊接集控器的處理器啟動流程如圖3所示。TF-A為首先加載的可信賴固件,與傳統(tǒng)無安全校驗(yàn)的嵌入式Linux啟動不同,其保證了啟動過程中各個鏡像的完整性,最后負(fù)責(zé)加載bootloader,即U-Boot,該程序會初始化片上外設(shè),最后加載Linux內(nèi)核到內(nèi)存中運(yùn)行,從而完成對Cortex-A7內(nèi)核的初始化。Remoteproc是基于Linux下的遠(yuǎn)程處理器控制框架,可以通過本地處理器Cortex-A7,加載固件到遠(yuǎn)程處理器Cortex-M4以及啟動或停止遠(yuǎn)程處理器,因此Cortex-M4內(nèi)核最終由Linux系統(tǒng)通過Remoteproc框架啟動。最后達(dá)到Linux系統(tǒng)與FreeRTOS系統(tǒng)同時運(yùn)行在不同的內(nèi)核中,實(shí)現(xiàn)焊接集控器內(nèi)部任務(wù)的并行處理。

      圖3 焊接集控器處理器啟動流程

      2.2 核間通信任務(wù)

      在焊接集控器中,由圖2所示,核間通信由OpenAMP開源框架實(shí)現(xiàn),OpenAMP框架包括了IPCC核間通信控制器和RPMsg遠(yuǎn)程處理器信息處理協(xié)議。其中IPCC是提供門鈴信號給不同內(nèi)核,用于通知新消息可用,僅起到通知喚起中斷作用;RPMsg是基于共享內(nèi)存的消息總線協(xié)議,規(guī)定了消息幀報文格式以及管理共享緩沖區(qū)。

      在Cortex-M4內(nèi)核側(cè),利用FreeRTOS的多任務(wù)機(jī)制,劃分核間通信任務(wù)。在核間通信任務(wù)中,首先完成IPCC初始化及OpenAMP初始化,注冊RPMsg通道,搭建內(nèi)核間通信M4與A7雙向通道;其次,注冊核間通信接收中斷函數(shù);然后該任務(wù)查詢工作狀態(tài)位,0代表無新消息接收或新消息等待發(fā)送,則該任務(wù)進(jìn)入阻塞態(tài),等待有新消息接收產(chǎn)生中斷時,中斷回調(diào)函數(shù)會喚醒核間通信任務(wù),同時設(shè)置工作標(biāo)志位和方向標(biāo)志位為1,表示有新消息,方向?yàn)榻邮?;然后獲取共享資源鎖,避免對共享資源并發(fā)訪問;若為接收方向,則從環(huán)形共享內(nèi)存的隊列消息結(jié)構(gòu)中出列,獲取數(shù)據(jù)幀,然后執(zhí)行數(shù)據(jù)幀處理函數(shù);最后復(fù)位標(biāo)志位并釋放共享資源鎖,任務(wù)返回至查詢工作狀態(tài)位,開始新的工作周期,同理發(fā)送方向類似。核間通信任務(wù)流程如圖4所示。與基于分立元件的多控制器方案不同,異構(gòu)多核是將多個不同架構(gòu)的內(nèi)核集成在一塊芯片上,不同的內(nèi)核通過系統(tǒng)內(nèi)部高速總線連接通信,因此核間通信具有高帶寬及低延遲特性,且基于操作系統(tǒng)管理核間通信,保證了通信的有序性。

      圖4 核間通信任務(wù)流程圖

      2.3 人機(jī)交互任務(wù)

      焊接集控器在焊接過程中采集到各種狀態(tài)數(shù)據(jù)可由主焊接任務(wù)獲取,其中焊接狀態(tài)信息如電弧電壓、焊接電流、各從機(jī)狀態(tài)等信息需要顯示在人機(jī)交互界面上,因此需由核間通信任務(wù)將顯示信息從Cortex-A7內(nèi)核傳遞至Cortex-M4內(nèi)核中,再由人機(jī)交互任務(wù)完成顯示任務(wù)。此過程的通信地址圖如圖5所示,圖中地址從0開始,在整個可尋址地址空間中,包含了Cortex-M4的程序代碼和數(shù)據(jù)區(qū)、用于核間通信的共享內(nèi)存區(qū)及Cortex-A7的DDR內(nèi)存區(qū),實(shí)現(xiàn)了相同地址總線可訪問不同內(nèi)核區(qū)域。

      圖5 人機(jī)交互核間通信地址圖

      圖5中a是Cortex-A7與共享內(nèi)存區(qū)的通信任務(wù),該任務(wù)由Linux系統(tǒng)完成,對外提供文件訪問接口,只需調(diào)用該接口即可完成在Linux系統(tǒng)中的核間通信過程。人機(jī)交互任務(wù)需要在Cortex-M4數(shù)據(jù)區(qū)分配若干寄存器,用于與人機(jī)交互模塊進(jìn)行Modbus-RTU通信,部分寄存器分配見表1。

      表1 人機(jī)交互寄存器分配表

      表中寄存器地址分為2類,0x對應(yīng)位狀態(tài),存儲開關(guān)量,而4x對應(yīng)雙字?jǐn)?shù)據(jù)寄存器,存儲有效數(shù)據(jù)。人機(jī)交互任務(wù)根據(jù)已分配寄存器與人機(jī)交互模塊通信,任務(wù)流程圖如圖6所示,不同任務(wù)之間的調(diào)度由FreeRTOS負(fù)責(zé),在人機(jī)交互任務(wù)中,檢測到接收到的數(shù)據(jù)報文時,中斷程序會將數(shù)據(jù)報文拷貝至接收緩沖數(shù)組,執(zhí)行Modbus接收處理函數(shù),驗(yàn)證設(shè)備站號、CRC校驗(yàn),然后根據(jù)功能碼類型賦值給任務(wù)變量,根據(jù)功能碼的不同讀取或?qū)懭肴藱C(jī)交互寄存器,當(dāng)功能碼為寫入時,不僅需要將對應(yīng)人機(jī)交互寄存器賦新值,還需要將更新后的寄存器值通過核間通信任務(wù)實(shí)時反饋到Cortex-A7內(nèi)核中,如手動按下啟動按鈕、急停按鈕、設(shè)置焊接參數(shù)時,每個內(nèi)核都需要實(shí)時獲得該參數(shù)并進(jìn)行處理?;贔reeRTOS的任務(wù)管理機(jī)制,人機(jī)交互任務(wù)在更新寄存器后通過喚醒處于阻塞態(tài)的核間通信任務(wù)通知Cortex-A7內(nèi)核,使得在Linux系統(tǒng)下的主焊接任務(wù)可根據(jù)改變寄存器值控制焊接過程,電源啟停、焊接工藝參數(shù)實(shí)時調(diào)整等操作。

      圖6 人機(jī)交互任務(wù)流程圖

      2.4 人機(jī)交互界面設(shè)計

      為滿足焊接集控器協(xié)同控制爬行式焊接機(jī)器人運(yùn)動控制裝置、焊接電源、送絲機(jī)等從機(jī)及顯示狀態(tài)信息需求,設(shè)計了狀態(tài)信息顯示界面、運(yùn)動控制界面、焊接參數(shù)設(shè)置界面、故障信息顯示界面,其結(jié)構(gòu)層次如圖7所示。

      圖7 人機(jī)交互樹狀關(guān)聯(lián)

      在組態(tài)軟件EasyBuilder Pro中,設(shè)置初始界面為開機(jī)自檢階段界面,由于焊接集控器需要與多從機(jī)通信,而多從機(jī)的系統(tǒng)啟動需要等待全部啟動完畢后方可開始焊接,因此設(shè)置初始界面等待所有從機(jī)在線后方可點(diǎn)擊進(jìn)入二級界面進(jìn)行操作。在二級界面中顯示各個從機(jī)的在線狀態(tài),焊接參數(shù)設(shè)置,故障信息顯示,因此利用組態(tài)軟件EasyBuilder Pro提供的GUI界面,如圖8所示,將需要的按鈕元件、設(shè)置窗口、切換界面元件等拖拽至指定位置,設(shè)置各個元件的對應(yīng)寄存器地址,即可對應(yīng)Cortex-M4數(shù)據(jù)區(qū)中的人機(jī)交互寄存器地址,使不同界面的開發(fā)工作量降低。

      圖8 人機(jī)交互界面設(shè)計軟件

      3 試驗(yàn)驗(yàn)證

      基于多核異構(gòu)的焊接集控器平臺中,測試多核系統(tǒng)鏈?zhǔn)絾?,對核間通信任務(wù)進(jìn)行測試,最后驗(yàn)證焊接集控器人機(jī)交互界面設(shè)計。

      當(dāng)焊接集控器平臺引導(dǎo)進(jìn)入Linux系統(tǒng)后,由Remoteproc框架加載Cortex-M4內(nèi)核程序,進(jìn)而啟動該內(nèi)核,包括了加載Cortex-M4內(nèi)核固件、啟動該固件、分配共享內(nèi)存節(jié)點(diǎn)、RPMsg通信建立及通信通道建立,Linux系統(tǒng)建立文件訪問接口/dev/ttyRPMSG0,以供核間通信訪問。

      在測試核間通信任務(wù)中,按照50字節(jié)為單位進(jìn)行數(shù)據(jù)量遞增,在基準(zhǔn)時間50 ms內(nèi),得到有效的發(fā)送次數(shù)見表2,可得隨著單次傳輸數(shù)據(jù)量的增加,核間通信傳輸速率呈線性增加趨勢,在200字節(jié)單次傳輸時,傳輸速率能夠達(dá)到6 675.78 kB/s,而一般分立控制器通信速率只有十幾kB/s,驗(yàn)證了核間通信具有較強(qiáng)的數(shù)據(jù)傳輸能力,滿足焊接集控器的人機(jī)顯示任務(wù)和主焊接任務(wù)的通信速率要求。

      表2 核間通信任務(wù)測試

      將焊接集控器與各從機(jī)設(shè)備通過總線連接,焊接集控器的人機(jī)交互畫面如圖9所示,該人機(jī)交互畫面實(shí)時顯示了當(dāng)前設(shè)置的焊接電流、電弧電壓等參數(shù)及各從機(jī)設(shè)備的在線情況,在人機(jī)交互畫面的操作通過核間通信任務(wù)實(shí)時反饋到主焊接任務(wù)中,完成多核間的焊接任務(wù)控制。

      圖9 焊接集控器人機(jī)交互畫面

      4 結(jié)論

      基于多核異構(gòu)的焊接集控器人機(jī)交互設(shè)計中,通過將主焊接任務(wù)與人機(jī)交互任務(wù)靜態(tài)劃分到不同的內(nèi)核運(yùn)行,各個內(nèi)核中運(yùn)行不同的系統(tǒng),完成了任務(wù)解耦,簡化了硬件設(shè)計,同時降低了焊接過程中的主處理器占用。基于核間通信的高速特性,使得主焊接任務(wù)與人機(jī)交互任務(wù)的實(shí)時性得以保證。

      猜你喜歡
      間通信實(shí)時性內(nèi)核
      細(xì)胞間通信預(yù)測方法研究進(jìn)展
      萬物皆可IP的時代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      基于規(guī)則實(shí)時性的端云動態(tài)分配方法研究
      綜合航電分區(qū)間通信元模型設(shè)計研究
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實(shí)時性仿真
      航空電子AFDX與AVB傳輸實(shí)時性抗干擾對比
      一種車載Profibus總線系統(tǒng)的實(shí)時性分析
      404 Not Found

      404 Not Found


      nginx
      文安县| 思茅市| 襄垣县| 孟连| 右玉县| 芦山县| 剑川县| 鞍山市| 建瓯市| 鄄城县| 定州市| 阳江市| 合作市| 南城县| 中西区| 新竹市| 郴州市| 古交市| 永胜县| 永仁县| 金沙县| 高清| 九江市| 马边| 庆安县| 宁明县| 云林县| 泰州市| 澄迈县| 万荣县| 庆云县| 资源县| 沙雅县| 晋城| 邮箱| 鄢陵县| 时尚| 洪江市| 班玛县| 巴林右旗| 佛冈县|