1 引言
在进行pcb反设计时,需要首先对电路板进行探测,得出所有元器件管脚之间的连接关系;接着再利用相应的软件对探测结果进行分析处理,最终还原出pcb的原理图。假设电路板上有
次。由于大规模pcb上器件管脚众多,因此完全依靠手工探测不仅效率低下,而且极易出错。
为了提高pcb探测的效率和准确性,本文提出了一种基于ez-usb 2100系列单片机的pcb探测系统的设计与实现方案。该系统有 个探测头,分别连接到电路板的 个器件管脚上。在单片机的控制下,系统自动的探测这个管脚间的连接关系;然后,系统依据探测选择算法,选取下一组 个管脚进行探测,依此循环,直到所有的 个器件管脚均探测完毕。采用ez-usb 2100系列单片机进行开发,不仅易于实现探测设备和主机之间的高速通信,而且还为探测设备的功能扩展带来了极大的便利。下文将首先分析ez-usb 2100系列单片机的特点和技术优势,然后给出基于该类型单片机的pcb探测系统的设计与实现方案。
2 ez-usb 2100系列单片机的特点
ez-usb 2100系列单片机由cypress公司开发,片内集成了符合usb 1.1版规范的usb控制器和一个增强的8051内核。增强的8051内核运行速度为24mhz,并且一个总线周期中包含有4个时钟周期,而标准8051 则包含12个时钟周期。除了增强的8051内核,与传统的8051单片机相比,ez-usb 2100系列单片机还具有两大优势技术:1)通过usb总线实现与主机的高速数据传输;2)固件重配置功能。这两项技术为应用开发提供了极大的方便性和灵活性,下面将具体分析在实际的开发过程中如何使用这两项技术。
2.1 ez-usb 2100系列单片机与主机的通信
ez-usb 2100系列单片机内集成的usb控制器符合usb1.1版规范,可支持12mbps高速数据传输。主机上的应用程序通过ez-usb设备驱动程序和 ez-usb单片机进行通信。cypress提供了一个通用的设备驱动程序,用户可以直接利用该通用设备驱动程序与ez-usb单片机进行通信。
首先,主机需要装载该通用设备驱动程序。第一次使用某usb设备时可能需要手工安装其驱动程序;此后,windows会保存在注册表中的相关信息,自动定位设备驱动程序。
在装载了通用设备驱动程序之后,应用程序首先通过调用win32 api函数createfile()来取得访问设备驱动程序的句柄:
handle devicehandle;
devicehandle = createfile (“\\.\ezusb-0”, generic_write, file_share_write, null, open_existing, 0, null );
然后,应用程序为createfile()函数返回的设备句柄设置i/o缓冲区,并通过调用win32 api函数deviceiocontrol()来完成设备的读、写等操作:
pvoid pvbuffer = null;
dword nbytes = 0;
pvbuffer = malloc (sizeof (usb_device_descriptor ));
bresult = deviceiocontrol ( devicehandle, //已经打开的设备句柄
ioctl_ezusb_get_device_descriptor, //io控制码
null, 0, pvbuffer, sizeof (usb_device_descriptor),
&nbytes, null);
对ez-usb外设的操作是通过向deviceiocontrol函数传递相应的控制码实现的。例如,要完成数据的块读(bulk read)和块写(bulk write)操作,可以分别向该函数传递ioctl_ezusb_bulk_read 和ioctl_ezusb_bulk_write控制码。
2.2 ez-usb 2100系列单片机的固件重配置功能
一个单片机系统的硬件电路设计完成之后,该单片机系统的特性和功能还可以通过更改单片机的软件程序(即:固件)来加以改变。利用rom来存储固件则无法更改;而利用eprom来存储固件则会受到擦写次数和成本的限制。而ez-usb系列单片机片内集成的外部ram可用于装载固件,当设备与主机连接时,固件从主机装载到ram里执行,装载不同的固件设备就呈现出不同的特性,从而达到软配置目的。
3 ez-usb 2100系列单片机在开发pcb探测系统中的应用
3.1硬件电路设计
系统的硬件电路结构图如图1所示。k 个探测头连接到由多个模拟开关组成的模拟开关
3.2 系统功能扩充
正如本文2.2节说明的,可以利用ez-usb的重配置功能,对固件程序进行修改,以使得系统获得新的功能。在开发pcb探测系统的过程中,我们发现需要对电路板上的电阻、电容和电感这些双脚器件的取值进行测量。由于大规模电路板上这类器件数量庞大,手工采用万用表或逻辑分析仪进行测量是一件非常繁琐的工作。而利用ez-usb的重配置功能则可以解决这一问题。采用与3.1节同样的硬件电路,笔者另外设计了一套固件程序,用于电路板上电阻、电容和电感的类型判别及取值测定。
4 结语
该探测系统极大的提高了pcb反设计工作的效率。实际应用的结果表明该探测系统具有良好的探测完备性和准确性。
纳微半导体与欣锐科技联合打造新型研发实验室
华为云推出微光加速营活动 致力于成为智能世界云底座
索尼启动人工智能机器人的全新无人机项目 注册名Airpeak
分享一款高效的DC-DC降压转换芯片SY8032E
UWB室内定位技术的重要要素简析
单片机实现PCB探测系统
小米 Max 3暴力拆解,真的是良心机吗?
PTFE聚四氟乙烯材料的用途及性能说明
智能家居真的和所说的那样智能吗
在Linux中共享Windows系统资源
IP地址是什么,IP地址的分类有哪些
雷军看好!曾经的旗舰小米note雄风犹存,吊打8848足矣!
大疆无人机PK小米无人机 看最终产品定胜负
光伏组件与逆变器配置详情分析
持续性回馈是区别智能制造的关键
国际知名计算机视觉和机器学习软件开源平台OpenCV正式支持龙架构
蓝牙圣诞灯解决方案解析
中国科学院微电子研究所人工智能联合实验室正式成立
无线模块通信失败的原因有哪些?
dfrobot32GB (TF) Class10 内存卡介绍