?

RISC-V實現多通道智能化貨物分揀裝置

2021-07-05 07:08陳榮林魏陳鴻王仁平
電氣開關 2021年6期
關鍵詞:蜂鳥寄存器貨物

陳榮林,魏陳鴻,王仁平

(福州大學物理與信息工程學院,福建 福州 350108)

1 緒論

隨著人民生活現代化和智能化的發展,由芯來科技開發,是國內第一個完善的開源人們對處理器的性能要求和功能越來越高,RISC-V處理器項目,提供了一套從模塊到Arm架構和 Intel的 x86架構壟斷了全球幾SoC,從硬件到軟件,從運行到調試的完整乎所有主流的微處理器指令集架構[1],2010解決方案,并且配備完整的文檔,書籍和開年在伯克利分校( University of發板,使用穩健的 Verilog 2001語法編寫California at Berkeley)發布的全新的指的可綜合的 RTL代碼,以工業級標準進行開令集架構——RISC-V指令集,有希望打破這發,注釋豐富、可讀性強、易于理解[3]。一種芯片架構被 arm和 X86壟斷的格局,給現在市面上常見的分揀機器大多數基中國自主發展處理器 IP帶來一個新的機會,本都是正方形,以最多只能同時將快遞分成尤其對于嵌入式系統的開發應用,RISC-V3類。那么如果遇到需要多分類的時候,就需要多個裝置串接。當裝置的數量越多,對整體分揀設備的占地面積的要求會更大,同時購買分揀裝置的成本也會上升。對于一些中小型的收寄中心和一些中小型的快遞寄送點來說,這些要求是他們無法達成的。因此,本文設計如圖1所示多通道圓形分揀結構,連接更多的傳輸通道。

圖1 多通道圓形分揀結構

2 軟件設計

本設計中將蜂鳥 E203 Core和配套 SoC源代碼通過 Vivado生成 bit流文件燒寫入Artix-7XC7A100T開發板,并通過軟件編程配置成所需要的工作模式。其軟件設計如圖2所示。

圖2 軟件設計圖

2.1 外設初始化

對蜂鳥 E203的外設進行初始化。第一,蜂鳥 E203 MCU SoC中的 GPIO為芯片提供一組 32個 I/O的通用輸入輸出接口,其特點是可以進入 IOF模式與其他外設連接,如圖3所示。

圖3 GPIO復用關系圖

設計中用到的32位可配置寄存器如表1所示。

表1 GPIO部分可配置寄存器

第二,蜂鳥 E203支持 3個 PWM模塊,每個 PWM模塊都具有四路 PWM輸出。因為整個設計中需要對兩種直流電機進行驅動,所以只需要復用一個 PWM模塊的兩路輸出。具體配置過程如下:

(1)將GPIO_IOF_EN寄存器對應的兩個 I/O配置為 1,使其進入 IOF模式。

(2)配置寄存器PWMCFG就行 PWM初始化,另外通過配置寄存器 PWMCMP0、PWMCMP1設置占空比。

本設計中將寄存器 PWMCFG的pwmdeglitch、 pwmzerocmp、 pwmenalways域配置為 1,具體作用如表2所示。

第三,蜂鳥 E203 MCU SoC支持兩個 UART模塊,分別為 UART0和 UART1,兩個 UART的特性和功能完全相同。使用 UART時,需要將對應的 GPIO的 I/O配置為 IOF模式連接 UART。

本設計中是 UART0用于將 OpenMv攝像頭采集的條形碼識別譯碼出的 ASCII碼處理后發送給 MCU進一步判斷以控制電機運轉。另外為了方便對數據庫進行修改,利用UART1連接 WIFI模塊。

第四,在本設計中,因為采用的 0.96寸OLED顯示屏的主控芯片是SSD1306,其特點是可以不需要數據反饋,因此采用普通的I/O口來模擬I2C端口輸出I2C信號。其配置過程是選取兩個普通I/O,將寄存器GPIO_OUTPUT_EN對應的 I/O配置為 1進行輸出使能,作為SDA線和SCL線的接口即可。

2.2 定時器中斷配置

蜂鳥 E203實現了一個 CLINT模塊,用于產生一組定時器中斷。其中中斷函數主要完成每一次中斷翻轉一次 I/O,每 4000次中斷更新一次顯示屏內容。

由于在本設計中步進電機精度要求較高,無法直接使用 PWM模塊進行驅動,所以通過定時器中斷法,即每進入一次中斷,I/O翻轉一次的方式完成脈沖信號的輸出。

另外,考慮到步進電機失步、越步的現象,設計中加入了步進電機的梯形加速算法進行優化,數學模型如圖 4所示。

圖4 梯形優化算法模型

實際設計中,步進電機本身的轉角是每個脈沖 1.8°需要 200個脈沖步進電機旋轉一圈,在步進電機驅動的 4分頻系數下,需要 800個脈沖完成旋轉一圈。在設定為 1s轉一圈的情況下,輸出的脈沖頻率在 800Hz即可,即正常運行的頻率為 800Hz。同時,在裝置設計時,不同的輸出路徑直接的角度差應該在 9°以上,因此加速和加速環節應該在 3.6°內完成,即在 8個脈沖內完成。加速增量如式(1)所示。同理完成減速部分。

(1)

2.3 OpenMv攝像頭軟件編寫

OpenMv攝像頭因為自帶機器識別的庫,所以將其初始化后,再調用庫里面的函數 codes=img.find_barcodes()以及 print_args=(code.payload())就可以得到從攝像頭拍攝到的圖像中讀出圖片中條形碼的數值,然后通過 UART發送到 MCU上進行后續的數據處理。

3 整體電路

軟件配置完成后,進行電路的搭建,因考慮到實際設計中所用到的直流電機以及步進電機的工作電壓和電流的要求,需要在端口和電機之間加入驅動電路。整體架構如圖 5所示。

圖5 整體架構圖

由于兩種直流電機在整體設計中有不同作用,其正常工作所需要的工作電壓和工作電流也有所不同。在結合了成本和功耗的考慮下選擇用 TB6612FNG作為大電機的電機驅動,選擇使用 L298N作為轉輪的電機驅動。

TB6612FNG是一種雙路全橋驅動芯片,該芯片輸出的單通道最大連續電流可達到1.2A,峰值電流可以達到 3.2A。本設計中,大電機控制傳送帶轉動,所以只需要控制其運行和停止。另外,以 L298N作為電機驅動電路的核心驅動芯片,則具有驅動能力強——輸出峰值電流可以達到 3A,只單路工作時輸出電流為 2A,雙路輸出時在 1A左右,同時功率可達到 25W[4]。本設計中,L289N驅動電路為驅動轉盤上的轉輪,不僅要能夠控制轉輪正反轉,還需要控制電機的轉速以及電機的運行和停止,所以需要把所有的接口留出,等待 MCU的控制信號[5]。

另外,步進電機在相應的步進電機驅動的協助下可做到精確的位置控制,表現為MCU每輸入一個脈沖信號到步進電機驅動里,步進電機就得到一個固定的位置增量。本次步進電機驅動選用 TB6600驅動器,這是一款專門用于兩相步進電機(42步進電機和57步進電機)的步進電機驅動??蓪崿F步進電機的正反轉控制,通過驅動器上方的 3位撥碼(s1,s2,s3)開關選擇步進電機的 7檔細分控,也可以通過后 3位撥碼開關(s4,s5,s6)選擇 8檔電流輸出控制[6]。

4 結論

本設計實現了基于蜂鳥 E203結合軟硬件通過電機控制的貨物分揀裝置,其整個工作過程如下:貨物表面的條形碼通過 OpenMv攝像頭與蜂鳥 E203連接的串口,將其有效信息傳送到蜂鳥 E203中,蜂鳥 E203進行數據處理后,與可通過 WIFI修改的數據庫進行比對,得到貨物的分類數據。之后,將已經被傳送帶送到轉盤上的貨物,根據分類數據,控制步進電機旋轉至既定角度并送出,之后將轉盤復位等待下一個貨物的到來。整個過程中會將傳送帶的轉速,當前轉盤的角度,顯示在顯示屏上,多通道智能化貨物分揀裝置如圖 6所示。實驗結果表明:該實驗裝置均能準確的實現 7個通道貨物分揀。

圖6 多通道智能化貨物分揀裝置

猜你喜歡
蜂鳥寄存器貨物
STM32和51單片機寄存器映射原理異同分析
蜂鳥——致苔絲
Lite寄存器模型的設計與實現
逛超市
蜂鳥
蜂鳥
高速數模轉換器AD9779/AD9788的應用
一種可重構線性反饋移位寄存器設計
路遙知馬力
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合