新聞中心

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

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

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

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

1 引言

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

2 JTAG測試系統(tǒng)構(gòu)成

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

圖 1 測試平臺的架構(gòu)

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

3 基于MCF 5272的測試主控器硬件設(shè)計(jì)

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

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

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

4測試主控器軟件設(shè)計(jì)

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

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

首先下載uClinux對MCF5272的Porting開發(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等等。我們所寫的代碼與系統(tǒng)內(nèi)核(Linux Kernel)和文件系統(tǒng)(File-system)一起先在開發(fā)主機(jī)PC上用交叉編譯器編譯生成系統(tǒng)影像文件,這是一個(gè)二進(jìn)制格式文件image.bin存放于uClinux/images 目錄下,它是由兩部分組成的:內(nèi)核(linux.bin)+文件系統(tǒng)(romfs.img),而romfs.img 是由uClinux/romfs/目錄打包生成的,它里面的文件目錄結(jié)構(gòu)就是最終用戶在板子運(yùn)行后的終端下ls命令所看到的文件和目錄,我們開發(fā)的應(yīng)用軟件和驅(qū)動程序也需要放在該目錄樹中。

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

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

4.2 GPIO驅(qū)動程序

在運(yùn)行uClinux的MCF5272上使用硬件設(shè)備并不是一定需要通過驅(qū)動程序的形式,因?yàn)闆]有MMU因此對硬件地址上的讀寫也不存在特權(quán)保護(hù),所以可以在用戶的應(yīng)用程序中對硬件端口直接進(jìn)行讀寫操作。但是做為規(guī)范化編程開發(fā),還是為給端口的硬件操作編寫了相應(yīng)的驅(qū)動程序。

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

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 };

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

設(shè)備驅(qū)動程序的代碼中還需提供初始化函數(shù)JTAG_GPIO_Init(),設(shè)備的注冊將在這個(gè)函數(shù)中通過調(diào)用register_chrdev()來完成。

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

4.3 JTAG總線行為的形成

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

圖 2 MCF5272主控器軟件架構(gòu)

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

4.4 PC主機(jī)端軟件

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

5結(jié)言

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

參考文獻(xiàn)

[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] 錢晨; 徐榮華; 王欽若;基于Linux操作系統(tǒng)的設(shè)備驅(qū)動程序開發(fā),微計(jì)算機(jī)信息,2004年 09期,pp:53-55.



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

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉