當(dāng)前位置:首頁 > 測(cè)試測(cè)量 > 測(cè)試測(cè)量
[導(dǎo)讀]利用MCF 5272的GPIO接口形成JTAG總線來對(duì)被測(cè)目標(biāo)進(jìn)行操控、用MCF 5272網(wǎng)絡(luò)接口實(shí)現(xiàn)對(duì)上位機(jī)PC的通信,形成由PC生成測(cè)試向量并通過網(wǎng)絡(luò)下傳到MCF 5272測(cè)試主控器

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

1 引言

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

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

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

1 測(cè)試平臺(tái)的架構(gòu)

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

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

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

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

JTAG總線信號(hào)的訪問通過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信號(hào),并需要設(shè)置的Port A的控制寄存器PACNT(Port A Control Register,在MBAR+0x0080地址)的低10位為0,即設(shè)置Port A口的低5位PA[4:0]為通用IO引腳,而不是復(fù)用成USB接口信號(hào)。然后對(duì)該端口的方向寄存器PADDR(Port A Data Direction Register,在MBAR+0x0084地址上的高16位)設(shè)置為低位為:……11110,即只有連接TDO信號(hào)的引腳為輸入方向,而其他的JTAG信號(hào)對(duì)MCF5272來說都是輸出引腳。這是與JTAG信號(hào)交互的硬件基礎(chǔ),后面還需要用軟件實(shí)現(xiàn)JTAG測(cè)試行為與該GPIO端口行為的語義差異的填補(bǔ)。

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

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

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

首先下載uClinux對(duì)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ū)動(dòng)程序也需要放在該目錄樹中。

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

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

4.2 GPIO驅(qū)動(dòng)程序

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

由于JTAG沒有規(guī)定的測(cè)試時(shí)鐘下限,且波形的生成和讀取完全在我們的控制之下,所以不需要實(shí)時(shí)的完成序列移位,從而也就不需要用到中斷功能。MCF5272平臺(tái)上uClinux的設(shè)備驅(qū)動(dòng)程序要比PC平臺(tái)上Linux設(shè)備驅(qū)動(dòng)程序要相對(duì)簡(jiǎn)單[4]。需要在宿主機(jī)上用“mknod gpio2jtag c 127 0”命令創(chuàng)建對(duì)應(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ù)功能,其讀寫操作對(duì)應(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就可以對(duì)Port A進(jìn)行讀寫引用。

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

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

4.3 JTAG總線行為的形成

由于GPIO的行為就是簡(jiǎn)單的數(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)的測(cè)試對(duì)象芯片上的TAP狀態(tài)轉(zhuǎn)移關(guān)系,把BS測(cè)試的幾個(gè)標(biāo)準(zhǔn)動(dòng)作:測(cè)試復(fù)位、TMS序列信號(hào)的產(chǎn)生、TDI序列信號(hào)的產(chǎn)生以及TDO序列輸出信號(hào)的接收,轉(zhuǎn)換成具體的波形數(shù)據(jù),然后通過驅(qū)動(dòng)程序控制GPIO形成JTAG總線信號(hào)。此時(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í)行模塊中的對(duì)應(yīng)代碼形成輸出波形,最終由驅(qū)動(dòng)程序利用GPIO的Port A低5位數(shù)據(jù)形成JTAG測(cè)試信號(hào)。

4.4 PC主機(jī)端軟件

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

5結(jié)言

本文作者創(chuàng)新點(diǎn):基于MCF 5272的邊界掃描測(cè)試平臺(tái)是一種簡(jiǎn)易廉價(jià)的測(cè)試系統(tǒng),雖然難以與昂貴專業(yè)的測(cè)試設(shè)備相比,但是相對(duì)于其他簡(jiǎn)易系統(tǒng),上述開發(fā)研究工作的創(chuàng)新與價(jià)值在于:相對(duì)于使用PC并口形式的主控器,它具有價(jià)格和體積上的優(yōu)勢(shì);相對(duì)于使用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板測(cè)試任務(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ū)動(dòng)程序開發(fā),微計(jì)算機(jī)信息,2004年 09期,pp:53-55.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉