基于EZ-USB 2100系列單片機的PCB探測系統開(kāi)發(fā)
1 引言
本文引用地址:http://dyxdggzs.com/article/172197.htm在進(jìn)行PCB反設計時(shí),需要首先對電路板進(jìn)行探測,得出所有元器件管腳之間的連接關(guān)系;接著(zhù)再利用相應的軟件對探測結果進(jìn)行分析處理,最終還原出PCB的原理圖。假設電路板上有 次。由于大規模PCB上器件管腳眾多,因此完全依靠手工探測不僅效率低下,而且極易出錯。為了提高PCB探測的效率和準確性,本文提出了一種基于EZ-USB 2100系列單片機的PCB探測系統的設計與實(shí)現方案。該系統有 個(gè)探測頭,分別連接到電路板的 個(gè)器件管腳上。在單片機的控制下,系統自動(dòng)的探測這個(gè)管腳間的連接關(guān)系;然后,系統依據探測選擇算法,選取下一組 個(gè)管腳進(jìn)行探測,依此循環(huán),直到所有的 個(gè)器件管腳均探測完畢。采用EZ-USB 2100系列單片機進(jìn)行開(kāi)發(fā),不僅易于實(shí)現探測設備和主機之間的高速通信,而且還為探測設備的功能擴展帶來(lái)了極大的便利。下文將首先分析EZ-USB 2100系列單片機的特點(diǎn)和技術(shù)優(yōu)勢,然后給出基于該類(lèi)型單片機的PCB探測系統的設計與實(shí)現方案。S3C2410 ARM9開(kāi)發(fā)板800元 SOC開(kāi)發(fā)平臺360元 豪華單片機開(kāi)發(fā)系統498元 單片機學(xué)習板138 無(wú)線(xiàn)nRF-9E5模塊100元 51單片機試驗開(kāi)發(fā)板238元 Genius NSP通用編程器260元 Mini ARM Debugger330元 LABTOOL-48UXP2800元 S3C2410 ARM9開(kāi)發(fā)板800
2 EZ-USB 2100系列單片機的特點(diǎn)
EZ-USB 2100系列單片機由Cypress公司開(kāi)發(fā),片內集成了符合USB 1.1版規范的USB控制器和一個(gè)增強的8051內核。增強的8051內核運行速度為24MHz,并且一個(gè)總線(xiàn)周期中包含有4個(gè)時(shí)鐘周期,而標準8051 則包含12個(gè)時(shí)鐘周期。除了增強的8051內核,與傳統的8051單片機相比,EZ-USB 2100系列單片機還具有兩大優(yōu)勢技術(shù):1)通過(guò)USB總線(xiàn)實(shí)現與主機的高速數據傳輸;2)固件重配置功能。這兩項技術(shù)為應用開(kāi)發(fā)提供了極大的方便性和靈活性,下面將具體分析在實(shí)際的開(kāi)發(fā)過(guò)程中如何使用這兩項技術(shù)。
2.1 EZ-USB 2100系列單片機與主機的通信
EZ-USB 2100系列單片機內集成的USB控制器符合USB1.1版規范,可支持12Mbps高速數據傳輸。主機上的應用程序通過(guò)EZ-USB設備驅動(dòng)程序和 EZ-USB單片機進(jìn)行通信。Cypress提供了一個(gè)通用的設備驅動(dòng)程序,用戶(hù)可以直接利用該通用設備驅動(dòng)程序與EZ-USB單片機進(jìn)行通信。
首先,主機需要裝載該通用設備驅動(dòng)程序。第一次使用某USB設備時(shí)可能需要手工安裝其驅動(dòng)程序;此后,Windows會(huì )保存在注冊表中的相關(guān)信息,自動(dòng)定位設備驅動(dòng)程序。
在裝載了通用設備驅動(dòng)程序之后,應用程序首先通過(guò)調用Win32 API函數CreateFile()來(lái)取得訪(fǎng)問(wèn)設備驅動(dòng)程序的句柄:
HANDLE DeviceHandle;
DeviceHandle = CreateFile (“\.ezusb-0”, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL );
然后,應用程序為CreateFile()函數返回的設備句柄設置I/O緩沖區,并通過(guò)調用Win32 API函數DeviceIoControl()來(lái)完成設備的讀、寫(xiě)等操作:
PVOID pvBuffer = NULL;
DWORD nBytes = 0;
PvBuffer = malloc (sizeof (Usb_Device_Descriptor ));
BResult = DeviceIoControl ( DeviceHandle, //已經(jīng)打開(kāi)的設備句柄
IOCTL_EZUSB_GET_DEVICE_DESCRIPTOR, //IO控制碼
NULL, 0, pvBuffer, sizeof (Usb_Device_Descriptor),
nBytes, NULL);
對EZ-USB外設的操作是通過(guò)向DeviceIoControl函數傳遞相應的控制碼實(shí)現的。例如,要完成數據的塊讀(bulk read)和塊寫(xiě)(bulk write)操作,可以分別向該函數傳遞IOCTL_EZUSB_BULK_READ 和IOCTL_EZUSB_BULK_WRITE控制碼。
2.2 EZ-USB 2100系列單片機的固件重配置功能
一個(gè)單片機系統的硬件電路設計完成之后,該單片機系統的特性和功能還可以通過(guò)更改單片機的軟件程序(即:固件)來(lái)加以改變。利用ROM來(lái)存儲固件則無(wú)法更改;而利用EPROM來(lái)存儲固件則會(huì )受到擦寫(xiě)次數和成本的限制。而EZ-USB系列單片機片內集成的外部RAM可用于裝載固件,當設備與主機連接時(shí),固件從主機裝載到RAM里執行,裝載不同的固件設備就呈現出不同的特性,從而達到軟配置目的。
3 EZ-USB 2100系列單片機在開(kāi)發(fā)PCB探測系統中的應用
3.1
3.1硬件電路設計
系統的硬件電路結構圖如圖1所示。k 個(gè)探測頭連接到由多個(gè)模擬開(kāi)關(guān)組成的模擬開(kāi)關(guān)
3.2 系統功能擴充
正如本文2.2節說(shuō)明的,可以利用EZ-USB的重配置功能,對固件程序進(jìn)行修改,以使得系統獲得新的功能。在開(kāi)發(fā)PCB探測系統的過(guò)程中,我們發(fā)現需要對電路板上的電阻、電容和電感這些雙腳器件的取值進(jìn)行測量。由于大規模電路板上這類(lèi)器件數量龐大,手工采用萬(wàn)用表或邏輯分析儀進(jìn)行測量是一件非常繁瑣的工作。而利用EZ-USB的重配置功能則可以解決這一問(wèn)題。采用與3.1節同樣的硬件電路,筆者另外設計了一套固件程序,用于電路板上電阻、電容和電感的類(lèi)型判別及取值測定。
4 結語(yǔ)
本文給出了一種基于EZ-USB 2100系列單片機的PCB探測電路的設計方案。該探測系統極大的提高了PCB反設計工作的效率。實(shí)際應用的結果表明該探測系統具有良好的探測完備性和準確性。
參考文獻
[1] Cypress Semiconductor Corporation, EZ-USB Series 2100[EB], 2002.
[2] 吳從中, EZ-USB接口設備的軟配置技術(shù)[M], 微控制器與嵌入式系統.2003.12
[3] 胡文靜, 基于EZ-USB芯片AN2131Q的USB接口設計, 湖南理工學(xué)院學(xué)報(自然科學(xué)版)
評論