1 引言
目前国内各大烟草制造企业的香烟包装都是在高速流水线上进行的,设备自动化程度 高,机械和电气控制复杂,生产中经常产生包装不合格的产品。目前的解决方法主要是通过 采集卡将烟包图像传输到工控机中,应用图像处理技术,检测出不合格的产品。这是一种 pc-based 的检测方法。现有的采集卡一般不具备图像处理的能力并且多是pci 接口,存在 安装和使用不方便,不支持热插拔等问题。
本文提出了一种应用ti 公司高性能dsp 处理器tms320dm642,视频解码器和altera 新推出的cpld epm240 组成的嵌入式的具有初步图像处理功能的采集系统。应用usb 接口将检测到的不合格产品图像信息实时传输到工控机上,供生产人员做进一步分析和统计 包装中出现的问题,以及时对生产设备进行维护,降低企业生产成本。
2 系统设计
dsp 处理器的视频口接收视频解码器输出的视频数据,采集一帧图像,通过edma 将缓存在视频口fifo 中的数据搬移到sdram 中。经过图像处理判定有无反包,拉线错位 及破损等错误。若要剔除烟包,工控机发出读请求唤醒usb 芯片ez-usb sx2(cy7c68001) ,dsp 启动edma 将sdram 中的图像传输到usb 的fifo(ep6)中。系统框图如图1 所示。
图1 系统结构图
dm642 是ti 公司推出的一款面向多媒体应用的定点数字信号处理器,设计主频为 500~ 720mhz,采用c64x 内核,2 级存储器结构,同时片上还集成了视频口(vp),外部 存储器接口(emif)等丰富的资源。dm642 特有的edma 负责片内l2 存储器与其他外设 之间的数据传输。epm240z 是altera 最新推出的max ii z 系列cpld。该系列采用非易失 的嵌入flash 工艺,以及创新的查找表(lut)逻辑结构,突破了传统宏单元器件的成本和功 耗限制。在max 系列基础之上,功耗只有十分之一,而容量增加了四倍,性能提升了一倍。
ez-usb sx2(cy7c68001)集成有usb2.0 收发器,串行接口引擎sie,4kb 的fifo, 可以选择的8 位或16 位总线方式。片上sie 能完成大部分的usb 协议操作,简化了用户设 置代码,但由于其内部不含微处理器,应用层协议由dsp 编程实现。
3 usb 通信接口硬件设计
系统中将 sx2 配置在dm642 的ce1 空间,四个端点(ep2,ep4,ep6,ep8)的地址空 间是0xa0000000“0xa0001bff。控制接口(ep0)的地址空间为0xa0002000”0xa000203f。 cy7c68001 与dsp 之间使用异步读写方式完成二者之间数据和命令的交换。中断信号占用 dm642 的外部中断ext_int5,四个状态信号(ready、flaga、flag 和flagc)和 唤醒信号分别配置在epm240g中的usb 状态寄存器(usb_sts)和usb 唤醒积存器中 (usb_wakeup) 。epm240g 占用dm642 的ce1 空间, 地址范围是 0x9a080000“0x9a080020。接口电路如图2 所示。
主要接口信号包括控制信号,数据总线和地址总线。
控制信号: usbint:中断信号。由sx2 提供,sx2 有六个中断源,中断发生时,dsp 读数据总线, 获取中断标志位判断具体哪个中断发生了。
flaga,flagb,flabc:状态信号。由sx2 提供,分别反映当前选中的fifo 的状态,可编程,满,空。
ce1,ce2:片选信号。由dsp 提供,选中ce1 或ce2 空间。
oe,re,we:输出允许信号,读使能信号,写使能信号。由dsp 提供。
地址总线:
aea22,aea[15..13],aea[7..3]:地址总线。由dsp 提供,设定外设地址。
4 usb 通信接口dsp 端软件设计
dsp 图像采集与处理系统的软件包括设备驱动和客户应用程序。系统软件是在ti dsp/bios 操作系统的基础上开发的,如图3 所示。dsp/bios 是整个dsp 系统软件的核心, 各底层设备驱动程序完成硬件的驱动与管理,并对上层提供统一的接口;各应用任务模块完 成相应的应用功能,并由dsp/bios 提供实时任务调度与操作系统的支撑。vp driver、usb driver分别是dm642 视频口和与sx2 通信的emif 口的底层驱动,完成对相应硬件外设的 硬件抽象与配置管理。
dsp/bios中的设备驱动程序由两层组成,上层是类驱动(class driver),其典型功能 是提供多线程的串行化与服务请求的同步,另外还要处理设备实例的管理。这一层与驱动无 关,它是dsp/bios 本身所集成的一部分模块,主要包括sio、pip 及gio 三种类驱动模型, 本系统采用的是gio 类驱动。下层是微驱动程序(mini driver),gio 类驱动使用与具体设 备相关的微驱动程序来操作sx2,以实现主机应用程序图像发送与接收的功能。微驱动程序 对sx 的配置过程见图4。
5 usb 通信接口主机端驱动程序设计
与传统的 pc 总线(如pci 总线)设备的驱动程序相比,usb 设备驱动程序不直接与硬 件对话。这些工作由微软提供的usbd.sys 来完成。usb 设备驱动程序的主要工作就把客 户软件的请求翻译成usbd.sys 能执行的事务。usb 设备驱动程序主要完成以下功能:发 现、配置、关闭usb 设备。
usb 设备驱动程序向主机应用程序提供函数接口,如像ezusb_creat(),ezusb_close() 等函数。应用程序调用函数ezusb_create(),返回唯一的windows 句柄后,才能调用驱动程 序的其他函数。应用程序通过调用标准win32 api 函数createfile()来实现对ezusb_create() 的访问。 控制与数据传送接口。应用程序使用 api 函数deviceiocontrol()来执行这样的操作。 驱动程序将这个函数调用转化为一个带irp_mj_device_control 功能码的irp。像读取与写 入fifo 数据、endpoint0 的操作均是通过异步io 的方式来完成的。
6 结论
本文所设计的带有 usb 接口的dm642 图像采集与处理系统,一方面充分利用了dm642 的强大处理能力和丰富的外设功能,另一方面使用了新架构的maxiiz 系列cpld 有效的 降低系统的功耗。软件方面,以dsp/bios 为核心,实现了usb 的固件程序,并在主机端 开发usb 的设备驱动程序。该嵌入式图像采集与处理系统针对香烟生产流水线上的包装检 测而设计,基本上满足香烟条包在线检测的需要。
内蒙古首例导诊机器人正式上岗,极大缓解导诊人员工作量
紫光国微宣布转让子公司西安紫光国芯半导体100%股权
UFS和NVME协议有什么不同?
3月份特斯拉Model Y开始交付,部分预订者提车时间确定
车规级电感厂家教你镍锌磁环共模电感如何选型
基于TMS320DM642和EPM240芯片实现图像采集与处理系统的设计
MQTT I/O模块:锂电池生产过程的智能监控与管理利器
彩电行业的市场化大洗牌正在全面开启 狭路相逢唯勇者胜
小米6配置全曝光 小米6配置详解
生物识别在支付领域起到了什么作用,是否有可行性
恩智浦与广汽研究院、大陆集团达成战略合作,打造全球领先的新一代智能网联产品
关于嵌入式技术的89个相关术语
2023年首个重量级MCU线下研讨会狂飚而来吃“芯”指南
水泥工厂 3D 可视化大屏,全流程数字孪生破局产线低效运转!
GD32F303固件库开发(6)----GPIO输入函数说明
EXAR发布四通道输出可编程电源管理系统-XRP7724
中兴安全手机通过公安部智能手机型移动警务终端权威检测
电池使用保养的五个误区
AI决策影响人类 必须尽快进行修正
智慧厕所镜面显示屏的应用将如何颠覆传统广告传播