<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 基于MCF 5272的邊界掃描測試平臺開(kāi)發(fā)

基于MCF 5272的邊界掃描測試平臺開(kāi)發(fā)

作者: 時(shí)間:2007-09-06 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:利用的GPIO接口形成JTAG總線(xiàn)來(lái)對被測目標進(jìn)行操控、用網(wǎng)絡(luò )接口實(shí)現對上位機PC的通信,形成由PC生成向量并通過(guò)網(wǎng)絡(luò )下傳到主控器,再由主控器完成向量的施加和響應結果的取回與比對,實(shí)現了簡(jiǎn)單電路的PCB互聯(lián)測試處理。測試設備市場(chǎng)需求少、價(jià)格高,因此開(kāi)發(fā)簡(jiǎn)單測試平臺可以滿(mǎn)足臨時(shí)的測試需求并可節約不少資金。
關(guān)鍵詞:MCF5272;測試;;主控器;

1 引言

當前的PCB板大量使用各種高密度的表貼元件和BGA (Ball Grid Array)封裝元件,元器件的管腳數和管腳密度極高。不僅不可能用手工完成測試,即使用昂貴的針床測試儀器等傳統方法也不能滿(mǎn)足要求。聯(lián)合測試行動(dòng)組(Joint Test Action Group,JTAG)起草了邊界掃描測試(Boundary-Scan Testing,BST)規范,即IEEE標準1149. 1 1990規定[1],即JTAG標準。但是相對昂貴的邊界掃描測試設備阻礙邊界掃描技術(shù)的推廣使用,特別是非批量產(chǎn)品的研制過(guò)程,往往只是需要對器件的引腳間焊接情況作出保證就能排除絕大多數故障,因此開(kāi)發(fā)一個(gè)簡(jiǎn)易的JTAG測試工具對于臨時(shí)測試任務(wù)的完成和節約資金都是很有作用的。下面將分析一個(gè)基于MCF 5272(Motorola Coldfire 5272)的簡(jiǎn)易邊界掃描測試平臺的設計。

2 JTAG測試系統構成

邊界掃描測試過(guò)程與普通測試類(lèi)似,但所有操作都是在只有5根信號的JTAG總線(xiàn)上完成,包括測試向量生成、施加和響應的獲取與比對。對于臨時(shí)性的PCB板的通斷測試,向量生成比較簡(jiǎn)單,既可以是人工生成也可以使用軟件自動(dòng)生成。而測試主控器(本文使用MCF5272來(lái)實(shí)現)則是需要將這些測試向量按照JTAG總線(xiàn)信號的規則施加到被測PCB板上,這需要用軟件彌補兩者語(yǔ)義差別。在施加測試向量的同時(shí)需要接收被測PCB板的響應信號,并將響應信號與標準響應之間作比對以判斷電路板連線(xiàn)的狀況。系統構成如圖 1。

圖 1 測試平臺的架構

不管是手工還是用軟件來(lái)實(shí)現測試向量的生成,都必須獲得PCB的電路網(wǎng)表信息以及所用器件的BSDL文件描述,然后才能進(jìn)行。標準的測試響應也是如此。下面著(zhù)重于如何用MCF5272設計測試主控器。

3 基于MCF 5272的測試主控器硬件設計

MCF5272 微處理器是摩托羅拉公司推出的集成度極高的ColdFire嵌入式微處理器,參照摩托羅拉推薦的樣例電路M5272 C3板[2]的原理圖,去掉不需要的外圍接口電路,保留BDM接口用于調試和下載啟動(dòng)代碼、存儲操作系統和根文件系統的閃存Flash存儲模塊以及運行時(shí)的主存SDRAM模塊、以太網(wǎng)RTL8019模塊以及網(wǎng)絡(luò )接口匹配電路、用作系統終端的串口COM1等。

這些外設或模塊對MCF5272來(lái)說(shuō)是處于不同地址空間的,因此通過(guò)配置片選輸出信號/CS0~/CS7的相關(guān)寄存器(即片選的基地址寄存器Chip Select Base Register CSBR0~7和片選的選項寄存器Chip Select Option Register CSOR0~7),可以在訪(fǎng)問(wèn)到對應的地址空間時(shí)產(chǎn)生出合適的片選信號。當訪(fǎng)問(wèn)的不同的地址空間的片選分配情況如下:CS0和 CS1用于兩片閃存 Flash模塊1和2(需要分別設置位于MBAR+0x040/0x044的CSBR0和CSOR0以及位于MBAR+0x048/0x04C的CSBR1和CSOR1)、CS4用于網(wǎng)絡(luò )接口芯片 RTL8019(對應的需要設置MBAR+0x060/0x064的CSBR4和CSOR4)、CS7用于主存SDRAM模塊1和2(對應的需要設置MBAR+0x078/0x07C的CSBR7和CSOR7)。增加GPIO的數據緩沖驅動(dòng)接口電路,可以很快的畫(huà)出自己所需的原理圖并進(jìn)行布線(xiàn)完成硬件設計與制作。

JTAG總線(xiàn)信號的訪(fǎng)問(wèn)通過(guò)MCF5272的GPIO(General purpose I/O) [3]來(lái)實(shí)現,MCF5272有48位可編程的GPIO(General purpose I/O)引腳,分成各自16位的三組:Port A、B、C。選用Port A的PA[4:0]分別作為JTAG總線(xiàn)的TRST、TCK、TMS、TDI和TDO信號,并需要設置的Port A的控制寄存器PACNT(Port A Control Register,在MBAR+0x0080地址)的低10位為0,即設置Port A口的低5位PA[4:0]為通用IO引腳,而不是復用成USB接口信號。然后對該端口的方向寄存器PADDR(Port A Data Direction Register,在MBAR+0x0084地址上的高16位)設置為低位為:……11110,即只有連接TDO信號的引腳為輸入方向,而其他的JTAG信號對MCF5272來(lái)說(shuō)都是輸出引腳。這是與JTAG信號交互的硬件基礎,后面還需要用軟件實(shí)現JTAG測試行為與該GPIO端口行為的語(yǔ)義差異的填補。

4測試主控器軟件設計

4.1 系統軟件環(huán)境

由于MCF5272沒(méi)有存儲管理單元MMU,無(wú)法實(shí)現虛存管理,從而不能在上面直接運行完整的Linux操作系統。我們選擇沒(méi)有需存管理的uClinux(Micro- Control-Linux)作為該平臺的操作系統,與大多數嵌入式開(kāi)發(fā)過(guò)程一樣,需要一臺用于開(kāi)發(fā)的運行Linux操作系統的PC主機,所有的軟件開(kāi)發(fā)都在該主機上進(jìn)行,同時(shí)作為MCF5272上運行的uClinux串口終端。

首先下載uClinux對MCF5272的Porting開(kāi)發(fā)工具鏈[4],包括交叉編譯器和其他相關(guān)工具:m68k-elf-gcc、m68k-elf-as、m68k-elf-ld、m68k-elf-g++、m68k-elf-cpp、m68k-elf-objdump、m68k-elf-size、genromfs、m68k-elf-gdb、elf2flt等等。我們所寫(xiě)的代碼與系統內核(Linux Kernel)和文件系統(File-system)一起先在開(kāi)發(fā)主機PC上用交叉編譯器編譯生成系統影像文件,這是一個(gè)二進(jìn)制格式文件image.bin存放于uClinux/images 目錄下,它是由兩部分組成的:內核(linux.bin)+文件系統(romfs.img),而romfs.img 是由uClinux/romfs/目錄打包生成的,它里面的文件目錄結構就是最終用戶(hù)在板子運行后的終端下ls命令所看到的文件和目錄,我們開(kāi)發(fā)的應用軟件和驅動(dòng)程序也需要放在該目錄樹(shù)中。

在生成系統影像之前一定要先對uClinux的內核進(jìn)行配置,即進(jìn)入到uClinux目錄并且執行make menuconfig命令,選擇需要的功能,不要忘記選擇對RTL8019的支持。

系統影像可以通過(guò)BDM接口寫(xiě)入到板子上,也可以先下載一個(gè)輔助程序到板子上然后由這個(gè)輔助程序用TFTP協(xié)議從主機PC上下載系統影像來(lái)加快速度。下載完系統影像后可以在宿主PC上用串口終端控制或者觀(guān)測MCF5272板子的輸出響應。

4.2 GPIO驅動(dòng)程序

在運行uClinux的MCF5272上使用硬件設備并不是一定需要通過(guò)驅動(dòng)程序的形式,因為沒(méi)有MMU因此對硬件地址上的讀寫(xiě)也不存在特權保護,所以可以在用戶(hù)的應用程序中對硬件端口直接進(jìn)行讀寫(xiě)操作。但是做為規范化編程開(kāi)發(fā),還是為給端口的硬件操作編寫(xiě)了相應的驅動(dòng)程序。

由于JTAG沒(méi)有規定的測試時(shí)鐘下限,且波形的生成和讀取完全在我們的控制之下,所以不需要實(shí)時(shí)的完成序列移位,從而也就不需要用到中斷功能。MCF5272平臺上uClinux的設備驅動(dòng)程序要比PC平臺上Linux設備驅動(dòng)程序要相對簡(jiǎn)單[4]。需要在宿主機上用“mknod gpio2jtag c 127 0”命令創(chuàng )建對應MCF5272文件系統的dev目錄建立設備節點(diǎn)。準備好設備文件操作表:

static struct file_operations mpg4cap_fops=

{ NULL,

NULL, /* seek */

GPIO_Read, /* read */

GPIO_Write /* write */

NULL, /* readdir*/

NULL, /* poll */

GPIO__Ioctl, /* ioctl */

NULL, /* mmap */

GPIO__Open, /* open */

NULL, /* flush */

GPIO__Release,

NULL };

并編寫(xiě)相應的函數功能,其讀寫(xiě)操作對應的單元是GPIO的Port A[4:0],需要通過(guò)PAD(Port A data Register,在MBAR+0x0086地址上的低16位)寄存器來(lái)完成,因為MCF5272采用統一編址方式,因此只需要定義內存指針并將地址設置為MBAR+0x0086就可以對Port A進(jìn)行讀寫(xiě)引用。

設備驅動(dòng)程序的代碼中還需提供初始化函數JTAG_GPIO_Init(),設備的注冊將在這個(gè)函數中通過(guò)調用register_chrdev()來(lái)完成。

最后,在uClinux源代碼的合適的地方調用JTAG_GPIO_Init(),這樣經(jīng)過(guò)交叉編譯后的系統影像就包括了我們的驅動(dòng)程序。

4.3 JTAG總線(xiàn)行為的形成

由于GPIO的行為就是簡(jiǎn)單的數據IO,與IEEE1149.1標準中關(guān)于JTAG總線(xiàn)行為之間的語(yǔ)義差距是很大的,因此需要用軟件來(lái)彌合這個(gè)差別。在MCF5272上的應用程序將根據具有16個(gè)穩態(tài)的FSM(有限狀態(tài)機)――即符合JTAG標準的測試對象芯片上的TAP狀態(tài)轉移關(guān)系,把BS測試的幾個(gè)標準動(dòng)作:測試復位、TMS序列信號的產(chǎn)生、TDI序列信號的產(chǎn)生以及TDO序列輸出信號的接收,轉換成具體的波形數據,然后通過(guò)驅動(dòng)程序控制GPIO形成JTAG總線(xiàn)信號。此時(shí)的軟件結構功能框圖如圖 2:

圖 2 MCF5272主控器軟件架構

MCF5272上的應用軟件編寫(xiě)成守護進(jìn)程的網(wǎng)絡(luò )服務(wù)器形式,不斷監聽(tīng)指定端口上的數據,將Host PC傳下來(lái)的命令與數據插入待處理隊列中,命令解釋模塊逐條讀出命令與數據,根據命令類(lèi)型調用執行模塊中的對應代碼形成輸出波形,最終由驅動(dòng)程序利用GPIO的Port A低5位數據形成JTAG測試信號。

4.4 PC主機端軟件

主機端的軟件使用VC++ 6.0開(kāi)發(fā),完成將測試向量和標準響應數據轉換成同步與TCK上升沿的TMS序列和TDI/TDO命令序列的過(guò)程,并且使用以太網(wǎng)將命令數據傳送到MCF5272測試主控器上。因此PC端的應用軟件相對于MCF5272測試主控器而言是一個(gè)網(wǎng)絡(luò )客戶(hù)端,通過(guò)socket編程形成到MCF5272制定端口上的TCP網(wǎng)絡(luò )連接,然后借助這個(gè)網(wǎng)絡(luò )連接向對方發(fā)出命令控制信息已完成測試操作,測試響應向量也可利用網(wǎng)絡(luò )取回。

5結言

本文作者創(chuàng )新點(diǎn):基于MCF 5272的邊界掃描測試平臺是一種簡(jiǎn)易廉價(jià)的測試系統,雖然難以與昂貴專(zhuān)業(yè)的測試設備相比,但是相對于其他簡(jiǎn)易系統,上述開(kāi)發(fā)研究工作的創(chuàng )新與價(jià)值在于:相對于使用PC并口形式的主控器,它具有價(jià)格和體積上的優(yōu)勢;相對于使用PC機上PCI插卡的實(shí)現方式,由于使用網(wǎng)絡(luò )接口與上位機通訊,因此可以適應不同系統結構的上位機同時(shí)又用足夠的處理能力。使用GPIO加上軟件控制的方式,因此靈活性很高,也非常易于增強性能,以極低的價(jià)格完成臨時(shí)的PCB板測試任務(wù)。

參考文獻

[1] Test technology technical committee of the IEEE computer society. IEEE Standard Test Access Port and Boundary Scan Architecture. IEEE Std 1149. 12 1990
[2] Freescale Semiconductor, M5272C3 User Manual, [EB/OL] /upload/eWebUpload/2006082310202882.pdf, 2006
[3] Freescale Semiconductor, MCF5272 ColdFire® Integrated Microprocessor User’s Manual, [EB/OL]/upload/eWebUpload/20060823102035292.pdf, 2006
[4] uCLinux Embedded Linux/Microcontroller Project, [EB/OL] http://www. uclinux.org/ports/ coldfire/source. html, 2006.
[5] 錢(qián)晨; 徐榮華; 王欽若;基于Linux操作系統的設備驅動(dòng)程序開(kāi)發(fā),微計算機信息,2004年 09期,pp:53-55.



關(guān)鍵詞: 5272 MCF 邊界掃描 測試

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>