陈荣林,魏陈鸿,王仁平
(福州大学物理与信息工程学院,福建 福州 350108)
随着人民生活现代化和智能化的发展,由芯来科技开发,是国内第一个完善的开源人们对处理器的性能要求和功能越来越高,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 多通道圆形分拣结构
本设计中将蜂鸟 E203 Core和配套 SoC源代码通过 Vivado生成 bit流文件烧写入Artix-7XC7A100T开发板,并通过软件编程配置成所需要的工作模式。其软件设计如图2所示。
图2 软件设计图
对蜂鸟 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线的接口即可。
蜂鸟 E203实现了一个 CLINT模块,用于产生一组定时器中断。其中中断函数主要完成每一次中断翻转一次 I/O,每 4000次中断更新一次显示屏内容。
由于在本设计中步进电机精度要求较高,无法直接使用 PWM模块进行驱动,所以通过定时器中断法,即每进入一次中断,I/O翻转一次的方式完成脉冲信号的输出。
另外,考虑到步进电机失步、越步的现象,设计中加入了步进电机的梯形加速算法进行优化,数学模型如图 4所示。
图4 梯形优化算法模型
实际设计中,步进电机本身的转角是每个脉冲 1.8°需要 200个脉冲步进电机旋转一圈,在步进电机驱动的 4分频系数下,需要 800个脉冲完成旋转一圈。在设定为 1s转一圈的情况下,输出的脉冲频率在 800Hz即可,即正常运行的频率为 800Hz。同时,在装置设计时,不同的输出路径直接的角度差应该在 9°以上,因此加速和加速环节应该在 3.6°内完成,即在 8个脉冲内完成。加速增量如式(1)所示。同理完成减速部分。
(1)
OpenMv摄像头因为自带机器识别的库,所以将其初始化后,再调用库里面的函数 codes=img.find_barcodes()以及 print_args=(code.payload())就可以得到从摄像头拍摄到的图像中读出图片中条形码的数值,然后通过 UART发送到 MCU上进行后续的数据处理。
软件配置完成后,进行电路的搭建,因考虑到实际设计中所用到的直流电机以及步进电机的工作电压和电流的要求,需要在端口和电机之间加入驱动电路。整体架构如图 5所示。
图5 整体架构图
由于两种直流电机在整体设计中有不同作用,其正常工作所需要的工作电压和工作电流也有所不同。在结合了成本和功耗的考虑下选择用 TB6612FNG作为大电机的电机驱动,选择使用 L298N作为转轮的电机驱动。
TB6612FNG是一种双路全桥驱动芯片,该芯片输出的单通道最大连续电流可达到1.2A,峰值电流可以达到 3.2A。本设计中,大电机控制传送带转动,所以只需要控制其运行和停止。另外,以 L298N作为电机驱动电路的核心驱动芯片,则具有驱动能力强——输出峰值电流可以达到 3A,只单路工作时输出电流为 2A,双路输出时在 1A左右,同时功率可达到 25W[4]。本设计中,L289N驱动电路为驱动转盘上的转轮,不仅要能够控制转轮正反转,还需要控制电机的转速以及电机的运行和停止,所以需要把所有的接口留出,等待 MCU的控制信号[5]。
另外,步进电机在相应的步进电机驱动的协助下可做到精确的位置控制,表现为MCU每输入一个脉冲信号到步进电机驱动里,步进电机就得到一个固定的位置增量。本次步进电机驱动选用 TB6600驱动器,这是一款专门用于两相步进电机(42步进电机和57步进电机)的步进电机驱动。可实现步进电机的正反转控制,通过驱动器上方的 3位拨码(s1,s2,s3)开关选择步进电机的 7档细分控,也可以通过后 3位拨码开关(s4,s5,s6)选择 8档电流输出控制[6]。
本设计实现了基于蜂鸟 E203结合软硬件通过电机控制的货物分拣装置,其整个工作过程如下:货物表面的条形码通过 OpenMv摄像头与蜂鸟 E203连接的串口,将其有效信息传送到蜂鸟 E203中,蜂鸟 E203进行数据处理后,与可通过 WIFI修改的数据库进行比对,得到货物的分类数据。之后,将已经被传送带送到转盘上的货物,根据分类数据,控制步进电机旋转至既定角度并送出,之后将转盘复位等待下一个货物的到来。整个过程中会将传送带的转速,当前转盘的角度,显示在显示屏上,多通道智能化货物分拣装置如图 6所示。实验结果表明:该实验装置均能准确的实现 7个通道货物分拣。
图6 多通道智能化货物分拣装置