• 
    

    
    

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

      ?

      打磨機器人控制器的軟件系統(tǒng)設(shè)計

      2021-11-19 04:59:38游瑋崔云從方華杰方明
      機器人技術(shù)與應(yīng)用 2021年3期
      關(guān)鍵詞:內(nèi)核中斷串口

      游瑋 崔云從 方華杰 方明

      (1埃夫特智能裝備股份有限公司,安徽蕪湖,241000;2 香港中文大學(xué),香港,999077)

      0 引言

      近年,科技進步不斷推動機器人技術(shù)的快速發(fā)展[1-2]。機器人控制器是機器人的重要組成部分,在很大程度上影響著機器人的發(fā)展[3-4]。

      傳統(tǒng)經(jīng)濟型工業(yè)機器人的控制器具有成本高、功耗大等缺點[5-6],不適合中小型移動機器人[7-8]。針對上述問題,本文設(shè)計了一種底層控制系統(tǒng)軟件,經(jīng)調(diào)教,能滿足埃夫特品牌所有機器人控制器運算能力強、實時性好等要求,且具有占用內(nèi)存小、模塊化設(shè)計等優(yōu)點。

      1 系統(tǒng)方案設(shè)計

      底層軟件設(shè)計的主要工作是編寫相關(guān)硬件驅(qū)動。驅(qū)動包括示教盒與主控制器兩部分,基于實時性要求不同,兩者分別采用uc/os和linux操作系統(tǒng)。示教盒與控制器關(guān)系,如圖1所示。

      圖1 示教盒軟件與控制器軟件關(guān)系圖

      2 Boot Loader設(shè)計

      Boot Loader作用是引導(dǎo)加載內(nèi)核程序。由于RS232串口傳輸速度慢,不適合大文件下載,而Uboot具有基于TFTP協(xié)議的以太網(wǎng)下載模式,極大提高了下載速度,因此選擇Uboot作為Boot loader。在啟動Uboot時,需要設(shè)置參數(shù)、傳輸文件和PC主機通信。示教盒的啟動流程如圖2所示。

      圖2 示教盒核心板軟件啟動流程圖

      3 內(nèi)核驅(qū)動設(shè)計

      內(nèi)核驅(qū)動是軟件底層核心部分,用戶調(diào)用驅(qū)動程序控制硬件,硬件利用程序進行反饋。控制器包含CAN、RS232、RS485、AD和DA通信總線,各總線需要相應(yīng)驅(qū)動程序。

      3.1 RS232驅(qū)動

      本文提出用RS232C,該通信標(biāo)準(zhǔn)于1969年由美國電子工業(yè)聯(lián)合會發(fā)布,其通信形式分為零Modem和Modem兩種。本文采用零Modem與計算機串口通信,傳輸距離15m,波特率195200bps。AM3517有4個串口,其中前三路UART接口的IRQ(中斷)指向MPU系統(tǒng),第四路UART不具有IRQ(中斷)功能,不作為實時串口使用。AM3517串口功能模塊具體線路如圖3所示。

      圖3 AM3517串口功能模塊

      RS232驅(qū)動模塊分為初始化、發(fā)送數(shù)據(jù)、中斷接收函數(shù)三個部分。初始化函數(shù)第一步為設(shè)置串口,例如設(shè)定中斷號、優(yōu)先級和服務(wù)子程序等;第二步至第六步分別為清空寄存器,關(guān)閉FIFO,設(shè)置波特率,設(shè)置EFR寄存器,接收中斷,設(shè)置EFR轉(zhuǎn)為正常模式。接收函數(shù)指中斷服務(wù)子函數(shù),發(fā)送函數(shù)將數(shù)據(jù)寫入寄存器里,通過判斷語句進行判斷,結(jié)合AM3517手冊,初始化函數(shù)框架圖如圖4所示。

      圖4 初始化函數(shù)框架圖

      3.2 RS485驅(qū)動

      選用RS485接口可以顯著提高RS232的傳輸速度,具有傳輸距離長、穩(wěn)定性好的優(yōu)點。為滿足AM3517對于485接口的需求,本文將MAX3485芯片轉(zhuǎn)成RS485通信格式,使用RS232進行驅(qū)動,如圖5所示。

      圖5 485轉(zhuǎn)換電路

      3.3 CAN驅(qū)動

      CPK(CAN Protocol Kernel)接收消息,接收控制單元選擇信息儲存位置??刂茊卧ㄟ^檢查信息狀態(tài)、標(biāo)識符和面具(mask)決定郵箱地址,將信息過濾在第一個郵箱。管理單元通過網(wǎng)絡(luò)計數(shù)器??刂菩畔⒌膫鬏斉c接收。在規(guī)定時間內(nèi),若沒有接收信息將產(chǎn)生報警。

      AM3517的CAN總線通信原理如圖6所示。

      圖6 CAN總線控制圖

      CPU將數(shù)據(jù)存儲并發(fā)送郵箱,RAM讀取數(shù)據(jù)和標(biāo)識符后,若TRSn被設(shè)置,信息將按優(yōu)先級發(fā)送。優(yōu)先級由寄存器(CANMCF)中TPL位決定。CPU完成數(shù)據(jù)讀取后,將中斷CPU接收信息。比較mask與標(biāo)識符,若相等,則RAM將接收標(biāo)識符、控制位以及數(shù)據(jù)字節(jié);反之,則不會存儲。CPU讀取數(shù)據(jù)后,RMPn將被重置。

      3.4 SPI驅(qū)動

      AD/DA的芯片通過SPI(Serial Peripheral Interface)總線與AM3517通信,且SPI屬于串行總線式協(xié)議,故通過調(diào)用AD與DA中的驅(qū)動即可實現(xiàn)目標(biāo)要求。主機將時鐘信號發(fā)送給從機,可進行同步化處理。

      3.5 驅(qū)動測試

      即通過RS232驅(qū)動測試函數(shù)。外部發(fā)送RS232數(shù)據(jù)給控制器,系統(tǒng)讀取后,根據(jù)ServerStub.c文件的指令列表,選擇執(zhí)行Comm.c文件函數(shù),最后通過rs232.文件函數(shù),將數(shù)據(jù)發(fā)送給外部232接收器。該函數(shù)由判斷和功能句兩部分組成,具體關(guān)系如圖7所示。

      圖7 測試函數(shù)

      在圖7中,{“ts232”,(CommFunc) testRS232,(CommFuncHelp) WeldTestHelp}為指令列表函數(shù),主要對Comm.c文件函數(shù)起選擇作用。void testRS232(int argc,char *argv[],int whichUart)為執(zhí)行函數(shù),通過判斷是否進入1通道RS232測試。count=Rs232_1_GetStr(testbuffer_1)函數(shù)可以獲取外部發(fā)送到232中的緩存數(shù)據(jù)。Rs232_1_SendStr(testbuffer_1)函數(shù)將數(shù)據(jù)發(fā)送給外部232接收器。

      3.6 內(nèi)核設(shè)計

      uc/os是開源系統(tǒng),便于開發(fā)人員下載源碼,具有執(zhí)行效率高、占用空間小、實時性和擴展性強等特點。基于uc/os系統(tǒng),本文根據(jù)機器人相關(guān)要求設(shè)計內(nèi)核。內(nèi)核啟動流程主要包括匯編啟動程序、系統(tǒng)初始化、Main程序初始化和任務(wù)分配運行四個部分,如圖8所示。

      圖8 內(nèi)核啟動流程圖

      在圖8中,匯編啟動程序引導(dǎo)內(nèi)核運行啟動、中斷向量表及跳轉(zhuǎn)主程序;系統(tǒng)初始化指對板級系統(tǒng)設(shè)置,如系統(tǒng)時鐘等;Main程序初始化則是初始化各個設(shè)備驅(qū)動;任務(wù)分配運行由任務(wù)分配初始化與任務(wù)運行兩部分組成,具體如圖9、圖10所示。

      在圖9中,SYS_TASK負責(zé)根文件、內(nèi)存變量、機器人相關(guān)變量的初始化、讀取配置文件、判斷示教盒有無且決定是否通信;WatchprocessorTASK負責(zé)串口監(jiān)視,執(zhí)行當(dāng)前工作狀態(tài);接收串口命令和打印信息;InterpTASK進行插值和計算目標(biāo)位置,在手動關(guān)節(jié)插補體現(xiàn);AnalyzeTASK負責(zé)示教模式下的自動計算運行位置;PlcSecondTASK通過PLC處理I/O口信息;ServoProcessorTASK處理伺服反饋信息。

      圖9 任務(wù)啟動流程及優(yōu)先級

      基于時間片輪番調(diào)度法,任務(wù)運行模塊對初始化任務(wù)按優(yōu)先級調(diào)度。任務(wù)進入就緒狀態(tài)后,通過任務(wù)調(diào)度運行。其中,若有中斷或其他任務(wù)進入,則執(zhí)行相應(yīng)程序。指定時間或反饋信息到達后,暫停任務(wù)繼續(xù)執(zhí)行。同時,也可在運行中刪除任務(wù),讓其進入休眠狀態(tài)。任務(wù)轉(zhuǎn)換如圖10所示。

      圖10 任務(wù)轉(zhuǎn)換圖

      4 結(jié)論

      本文針對打磨機器人對控制器運算能力強、實時性好等要求,設(shè)計機器人控制器軟件系統(tǒng),再根據(jù)系統(tǒng)總體方案,分別對Boot Loader設(shè)計和內(nèi)核驅(qū)動進行設(shè)計,并對內(nèi)核驅(qū)動進行詳細說明。本文設(shè)計的機器人控制器軟件系統(tǒng),可用于經(jīng)濟型打磨機器人,對其他品牌產(chǎn)品具有一定參考性。

      猜你喜歡
      內(nèi)核中斷串口
      萬物皆可IP的時代,我們當(dāng)夯實的IP內(nèi)核是什么?
      強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
      Linux內(nèi)核mmap保護機制研究
      跟蹤導(dǎo)練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
      地礦測繪(2015年3期)2015-12-22 06:27:26
      基于并行控制的FPGA多串口拓展實現(xiàn)
      余庆县| 鹤庆县| 英吉沙县| 武乡县| 广丰县| 台东市| 临沧市| 闵行区| 竹溪县| 思南县| 商南县| 铜梁县| 安西县| 林甸县| 忻城县| 徐汇区| 佛坪县| 云梦县| 高平市| 大关县| 繁昌县| 双流县| 民和| 三门县| 汕尾市| 搜索| 庐江县| 峨边| 博兴县| 许昌市| 沅陵县| 临漳县| 清水河县| 潢川县| 平和县| 洛扎县| 肇州县| 南宁市| 贵德县| 枣阳市| 防城港市|