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 );
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探测系统中的应用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)