找回密码
 注册
关于网站域名变更的通知
查看: 386|回复: 1
打印 上一主题 下一主题

基于TMS320VC5509A DSP芯片实现自动光学检测系统的软硬件设计

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-27 09:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
       随着表面组装技术(SMT)中所使用的印制电路板PCB)导体图形的细线化,SMT元器件的微型化,以及SMT组件的高密度组装和快速组装的发展趋势,采用目检或人工光学检测的形式检测SMT组装质量已不能适应。为此,自动光学检测(AOI)技术作为SMT组装质量检测的主要技术手段,在SMT中应用越来越普遍。5 z& U6 h, n7 k7 g9 G/ _( O6 q% p
AOI,也称为自动视觉检测,是基于光学原理,综合采用图像分析、计算机和自动控制等多种技术,对生产中遇到的缺陷进行检测和处理,是较新的确认制造缺陷的方法。AOI系统按技术划分为精密机械、电气控制、视觉系统、软件系统4大部分组成,其核心是一套基于CMOS或CCD的图像采集系统、交流伺服控制x、y工作台及图像处理软件系统。图1为所设计的PCB板AOI检测系统框图。% l1 l/ k/ e$ i. Y- I5 L
* h' S2 Z: J3 ]0 E+ q$ r
                        图1 PCB板AOI检测系统框图' y* V) {6 ~  n4 z* O7 I% ^9 ]! E
                        视觉检测系统硬件设计
) P, A; B: }% f, J/ [9 U                        AOI系统究其本质是一套基于机器视觉技术的表面缺陷检测系统。如何获取高质量的PCB表面图像信息成为PCB光学检测中首要解决的难题和重点,这是PCB表面缺陷检测的关键。由于PCB缺陷的特殊性,AOI系统对视觉采集系统提出了很高的要求:高分辨率、高速率、实时检测等。
+ }+ X8 X$ [, o! U2 L; L, O, A) a  \9 h                        视觉采集系统; D9 C8 t" \% ]8 ~+ ^  p$ n
       
" \# ?' U9 \6 V4 w
' Z" y6 h# B  Y  p
                        图2 视觉采集系统框图
8 h( N5 E& N' n/ x' ^1 r                        USB通信接口电路
. u* U/ G- B# i0 t7 i0 ~8 n5 ?                        本设计采用的DSP芯片TMS320VC5509A集成了一个USB控制模块(USB2.0 full speed),可以完成和USB主机系统之间的读写操作,具有无需外加逻辑电路、使用方便等优点。使用TMS320VC5509A的片上USB模块,完成DSP前端图像采集系统与后台PC机之间的通信硬件电路设计,简化了图像采集系统的硬件控制软件和后台PC机的驱动程序。- ^$ [$ E! n% H/ r" ]# J

8 M, F0 j! k& H& V( J6 k8 j' {
                        图3 TMS320VC5509A的USB接口电路
8 l2 A" _$ i! c- U7 @$ p7 ?                        图3为DSP片内USB模块与PC机进行数据通信的硬件接口电路。其中左边3个引脚PU、DP、DN是TMS320VC5509A的片上引脚,右边的6个引脚组成了一个Mini USB接口,利用USB连接线就可以完成与PC机的连接。中间的阻容电路起加强输入输出可靠性的作用。
$ b/ P/ a9 G8 \/ }5 s1 U% ^5 e                        软件程序设计+ h0 v8 n$ L# P4 X
0 O# h+ e4 g3 V' z8 X' g' G
                        图4 视觉系统中USB通信数据流
# F! n& }2 @0 M! j) S) T% i: T                        如图4所示,本系统中USB通信的软件程序主要由四部分组成。在设备端:设备端驱动程序,也称之为固件程序;设备端应用程序,主要完成数据搬运,以及与其他硬件设备的交互工作。在主机端:主机端驱动程序;主机端应用程序。由于USB是分层结构,主机端驱动和设备端驱动完成对USB设备的枚举和配置;而在主机端应用程序和设备端应用程序之间实现数据的通信。
. w3 ?4 ?# c% ~" o/ h                        本系统中,DSP作为USB传输的设备端,同时由于USB是严格的主从结构,所有的配置、枚举及数据传输命令都必须由主机下达,所以在设备端的程序设计时,固件程序设计成一个复杂的中断服务程序,用以主机对DSP作为USB设备配置、枚举时的应答。而原本在CCS中运行的DSP采集主程序也必须改写成中断程序,这样才能完成对DSP固件程序和DSP采集程序的整合,使之整合到一个main()运行程序中,程序运行时,启动对DSP的初始化,时钟配置和USB模块初始化;当主机发出采集图像命令时,DSP程序进入采集中断程序,执行实时采集中断程序;当主机发出USB模块配置枚举命令时,USB中断服务程序对主机做出回应;当主机发出传输图像命令时,DSP程序进入数据搬运中断程序。
7 {, z5 e* U4 v9 d                        DSP端的固件程序
# T/ ]" |* t- s- Y' I( r                        USB固件程序的结构一般是基于中断处理的。主程序完成必要的初始化之后就等待USB中断,接收到USB中断后依据中断的类型进入不同中断服务程序。USB协议的主从模式决定了USB总线上传输的发起和终止都是主机控制的,因此,固件编程中只要满足了主机的要求,或者说对主机的请求给予了及时的响应,那么固件的编程也就完成了。, C/ h& ]) e) \- u: E! e
                        USB固件应用程序主函数例程:0 O8 z+ z/ [# {, Q$ w
                        void main()* o3 Z& o% `. b( k5 V2 G; {
                        {
* T* i! `3 A7 V% H5 p                        EnableAPLL( );
# i+ k0 B* o3 ~; i                        //使能USB模块的模拟锁相环
7 D7 @& c& N. Z& b% v, B% ~2 N                        CSL_init( );
3 W4 P) k+ J" ~/ Z5 c                        // DSP的CSL库初始化函数. L$ R: L( U0 `9 A# V
                        INT_DisableGlobal(); // 关闭全局中断. E5 [! ^6 b3 H# @  g- @, x& {& n( ^
                        INT_SetVec(0x03ff00);
3 x8 i; u0 x2 L) G- p& ~                        // 设置中断向量表在RAM中的地址( w  I% k2 o/ H& g& P0 l& o
                        PLL_Init(48); // 将USB模块
9 i& l# }/ r( }4 w$ m. J5 P: w5 v1 `                        的时钟调整到48MHz  t0 I) i  A- L! {" {* p3 N
                        Collect_main(); // CMOS图像
. |) m8 g6 ]) K5 \$ |" K! ^- ]                        采集程序4 G! d0 |  I& \5 K2 f7 v
                        USBTest_Init(); // 初始化USB1 G; B/ J* u- Z: Y' h$ n3 [3 b
                        模块,初始化完毕打开全局中断
3 v) ~  U4 Z" R( \                        while(1); // 循环等待状态& r& b6 Z2 u! N  B  Y) s6 p
                        }+ w% k' r  T" {+ |) ]) F6 t
                        端点0的控制传输是USB枚举的默认传输端口,其中断服务程序是USB固件程序设计的难点和关键。/ X+ d6 z5 K( `
                        PC端的驱动程序及上位机应用程序' Q; }' `+ d0 D2 v) Z2 U' i
                        PC端的驱动程序及上位机应用程序设计相对比较简单,选用Driver Studio开发工具开发USB驱动程序,Driver Studio对设备驱动程序开发工具DDK中操作进行封装,减少了开发时间,提高了效率。通过Driver Studio的工具Driver wizard生成的驱动程序为开发者提供了一个基本框架,使用者只需修改较少的或者基本不用代码就可以实现相应的功能了。: o+ a5 {; Z# b$ g: u# P7 B
                        Windows XP中的上位机程序不能直接访问底层的硬件,需要通过驱动程序进行(读、写、中断等)操作。设备的驱动程序由I/O管理器管理和调动。上位机程序在用户模式下通过Win32子系统对Win32API函数进行调用。Win32API函数通过I/O管理器向内核模式下的驱动程序传递IRP。驱动程序通过处理IRP,来完成应用程序和硬件程序信息的交互。访问USB设备驱动的Win32API函数:
* E' @6 `: Z; k8 n' ^% K# I% y                        (1) CreatFile 函数创建或打开文件,并返回一个可用于访问文件的句柄。
% V' j/ {7 C* X/ N  T1 l; c5 C                        (2) DeviceIoControl 函数直接给指定的设备驱动程序发送控制代码,使得相应的设备执行指定操作。函数若成功,返回一个非0值,否则返回0。
$ Y  X  R- X: D! T: p                        (3) ReadFile 函数读由文件指针表示的位置开始处的文件读数据,读操作完成后,文件指针调整实际读的字节数。函数若成功,返回一个非0值,否则返回0。/ e/ F) n6 I" k2 G. z( L/ t3 S
                        (4) CloseHandle 函数关闭打开的文件句柄。函数若成功,返回一个非0值,否则返回0。
; e$ V0 H* X5 ?3 Q. F0 h                        实验与结论8 W4 t$ |! O' M8 o. q4 O( c
                        设计实现了一种印制电路板AOI视觉检测系统,包括硬件电路和软件程序。硬件结构简单,可以实现通信传输的高度集成化,传输速率满足AOI检测系统的实时性要求。图5为实验中采集到的PCB板图像。
  j% @$ k, A9 U9 g' s" N9 r, E: G" P" p/ z: O6 v4 y
                        图5 实验中采集到的PCB板图像. t3 F- l3 p# R' C& R
# b: b% O& b6 Z! K9 z4 [

1 X- r8 E  u6 @2 g5 x9 y4 n9 r

该用户从未签到

2#
发表于 2020-4-27 11:49 | 只看该作者
采用的DSP芯片TMS320VC5509A集成了一个USB控制模块(USB2.0 full speed
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-19 21:51 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表