黃世震,陳麗紅
(福州大學(xué)福建省微電子集成電路重點(diǎn)實(shí)驗(yàn)室,福州350002)
隨著集成電路和半導(dǎo)體工藝技術(shù)的發(fā)展,在單一集成電路芯片上就可以實(shí)現(xiàn)一個(gè)復(fù)雜的電子系統(tǒng),如智能卡、SD卡等,SoC正是在集成電路向集成系統(tǒng)轉(zhuǎn)變的大方向下產(chǎn)生的。由于SoC產(chǎn)品的功能模塊比較多,一般從封裝廠里出來(lái)后,要對(duì)各個(gè)功能模塊進(jìn)一步測(cè)試,從而剔除不良品,然后根據(jù)不同的用途對(duì)產(chǎn)品進(jìn)行初始化,完成測(cè)試過(guò)程。在產(chǎn)品的批量生產(chǎn)過(guò)程中,傳統(tǒng)的測(cè)試方法采用人工手動(dòng)測(cè)試,存在幾個(gè)問(wèn)題:①效率低,無(wú)法滿足SoC產(chǎn)品對(duì)時(shí)間的要求;②測(cè)試結(jié)果容易受人為因素的影響,無(wú)法滿足SoC產(chǎn)品對(duì)可靠性的要求。本文提出一種基于RS485總線的自動(dòng)化批量測(cè)試系統(tǒng)的設(shè)計(jì)方法,以現(xiàn)有的封裝廠測(cè)試平臺(tái)為基礎(chǔ),通過(guò)自行研制一些測(cè)試板,與現(xiàn)有的測(cè)試平臺(tái)對(duì)接,實(shí)現(xiàn)SoC產(chǎn)品的自動(dòng)化批量測(cè)試,提高生產(chǎn)效率。文中將以一款TF卡為例,在介紹完測(cè)試平臺(tái)的硬件結(jié)構(gòu)之后,側(cè)重介紹測(cè)試平臺(tái)的軟件設(shè)計(jì)方法。
RS485總線是業(yè)界應(yīng)用最廣泛的標(biāo)準(zhǔn)通信接口之一。它采用平衡發(fā)送和差分接收方式實(shí)現(xiàn)通信:發(fā)送端將串行口的TTL電平信號(hào)轉(zhuǎn)換成差分信號(hào)A、B兩路輸出,經(jīng)過(guò)線纜傳輸之后在接收端將差分信號(hào)還原成TTL電平信號(hào)。由于傳輸線通常使用雙絞線,又是差分傳輸,所以有極強(qiáng)的抗共模干擾的能力,傳輸距離在1 000 m以上,可互聯(lián)多達(dá)256個(gè)節(jié)點(diǎn),非常適合組成成本低廉的多機(jī)通信系統(tǒng)。RS485是一個(gè)多引出線接口,這個(gè)接口可以有多個(gè)驅(qū)動(dòng)器和接收器,采用主從式通信方式,可以實(shí)現(xiàn)一臺(tái)上位機(jī)與多臺(tái)下位機(jī)之間的串行通信。這種通信方式特別適合應(yīng)用于本測(cè)試平臺(tái)中[1]。
測(cè)試平臺(tái)主要包含3個(gè)部分,即測(cè)試機(jī)臺(tái)、測(cè)試PC和主從ARM測(cè)試板。測(cè)試機(jī)臺(tái)負(fù)責(zé)待測(cè)產(chǎn)品的安裝、測(cè)試的啟動(dòng)和按照測(cè)試結(jié)果進(jìn)行分類;測(cè)試PC負(fù)責(zé)發(fā)送測(cè)試機(jī)臺(tái)的啟動(dòng)命令、對(duì)主ARM測(cè)試板發(fā)送命令以及將測(cè)試結(jié)果反饋給測(cè)試機(jī)臺(tái);主ARM測(cè)試板負(fù)責(zé)接收測(cè)試PC的測(cè)試命令,并將其分發(fā)給多個(gè)從ARM測(cè)試板以及收集從測(cè)試板的測(cè)試結(jié)果反饋給測(cè)試PC。測(cè)試平臺(tái)連接圖如圖1所示。
圖1 測(cè)試平臺(tái)連接圖
具體的實(shí)施方法為:將測(cè)試機(jī)臺(tái)、測(cè)試PC、主從ARM測(cè)試板連接起來(lái),測(cè)試機(jī)臺(tái)將測(cè)試樣品送入測(cè)試接口,然后通知測(cè)試PC啟動(dòng)測(cè)試,測(cè)試PC通過(guò)USB接口發(fā)送測(cè)試命令給主ARM測(cè)試板,主ARM測(cè)試板通過(guò)RS485總線通知所有從ARM測(cè)試板啟動(dòng)測(cè)試,每塊ARM測(cè)試板(包括主ARM測(cè)試版)按照程序?qū)悠分械哪K進(jìn)行測(cè)試,并將測(cè)試結(jié)果反饋給主測(cè)試板,主測(cè)試板將結(jié)果匯總后反饋給測(cè)試PC,測(cè)試PC再將結(jié)果反饋給測(cè)試機(jī)臺(tái),最后測(cè)試機(jī)臺(tái)根據(jù)測(cè)試結(jié)果對(duì)各個(gè)測(cè)試樣品進(jìn)行分類放置,放入新的測(cè)試樣品,啟動(dòng)下一輪測(cè)試。
測(cè)試板采用32 bit高性能ARM核微處理器S3C2416,根據(jù)嵌入式系統(tǒng)的最小系統(tǒng)設(shè)計(jì)原理,進(jìn)行接口設(shè)計(jì)和硬件設(shè)計(jì),使測(cè)試板滿足測(cè)試需要[2-4]。測(cè)試板的硬件框圖如圖2所示。
圖2 測(cè)試板硬件框圖
主要電路功能簡(jiǎn)介如下:
電源電路 為整個(gè)系統(tǒng)供電,要求穩(wěn)定性高。測(cè)試板上有多個(gè)系統(tǒng)電壓,5 V,3.3 V,1.3 V,1.2 V等,能夠滿足SoC產(chǎn)品的測(cè)試需要。
復(fù)位電路 完成系統(tǒng)的上電復(fù)位和系統(tǒng)在運(yùn)行時(shí)用戶的按鍵復(fù)位功能;
系統(tǒng)時(shí)鐘電路 使用外部晶振起振,提供時(shí)鐘信號(hào)。本測(cè)試系統(tǒng)使用12 M晶振時(shí)鐘;
JTAG電路 測(cè)試平臺(tái)調(diào)試與測(cè)試接口,控制芯片的運(yùn)行并獲取內(nèi)部信息;
USART/SPI等接口 用于滿足不同SoC產(chǎn)品測(cè)試時(shí)的時(shí)序要求;
RS485接口電路 采用SN65HVD33芯片構(gòu)成,微處理器的標(biāo)準(zhǔn)串行口通過(guò)RXD直接連接SN65HVD33芯片的R引腳,通過(guò)TXD直接連接SN65HVD33芯片的 D引腳。微處理器的 GPD3、GPD4引腳分別和SN65HVD33芯片的RE和DE相連,控制SN65HVD33芯片的發(fā)送器/接收器使能:SN65HVD33發(fā)送器有效時(shí),微處理器可以向RS485總線發(fā)送字節(jié);SN65HVD33接收器有效時(shí),微處理器可以接受來(lái)自RS485總線的數(shù)據(jù)字節(jié)。任一時(shí)刻SN65HVD33芯片中的接收器和發(fā)送器只能有1個(gè)處于工作狀態(tài)[1]。
由于RS485總線是采用半雙工通信方式,每次只能有一對(duì)節(jié)點(diǎn)進(jìn)行通信,故要求每塊測(cè)試板有自己的地址編號(hào)[5]。本測(cè)試平臺(tái)共有4組,每組中都包含8塊ARM測(cè)試板,設(shè)計(jì)時(shí)在每塊ARM測(cè)試板上都裝上8個(gè)撥碼開關(guān),其中低4位(4∶1)表示從ARM測(cè)試板的編號(hào),高4位(5∶8)表示主ARM測(cè)試板編號(hào),有效編號(hào)為0~7。由于主ARM測(cè)試板在完成通信的同時(shí)也需要進(jìn)行樣品測(cè)試,其本身也相當(dāng)于一塊從ARM測(cè)試板,因此其撥碼開關(guān)的低四位始終設(shè)置為0,其編號(hào)為0,其它7塊從ARM測(cè)試板編號(hào)為1~7。這樣就保證了地址編號(hào)的唯一性,能夠滿足RS485通訊的要求。例如:若撥碼開關(guān)的狀態(tài)為00100001,則表示該測(cè)試板為第2組中的第2(編號(hào)為1)塊測(cè)試板,為從測(cè)試板;而主測(cè)試板的編號(hào)默認(rèn)為0,若撥碼開關(guān)的狀態(tài)為00100000,則表示該測(cè)試板為第2組中的第1(編號(hào)為0)塊測(cè)試板,為主測(cè)試板。
測(cè)試PC端軟件采用VC6.0編程實(shí)現(xiàn),串口的通信編程利用了COMM串行通信控件,方便地訪問(wèn)串口,實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送[6]。測(cè)試PC端顯示界面主要包括測(cè)試PC端與主從ARM測(cè)試板的通信狀態(tài)、測(cè)試板的測(cè)試結(jié)果等。
測(cè)試軟件通過(guò)RS232接收機(jī)臺(tái)命令,并控制測(cè)試板進(jìn)行相應(yīng)的測(cè)試。以一種SoC產(chǎn)品-TF卡為例,其測(cè)試界面如圖3所示。
其中區(qū)①為串口參數(shù)設(shè)置欄,測(cè)試開始前須檢查串口號(hào)及參數(shù)設(shè)置與機(jī)臺(tái)端是否一致,然后打開串口;區(qū)②為設(shè)備狀態(tài)欄,顯示運(yùn)行時(shí)各個(gè)測(cè)試板的狀態(tài),例如上圖中在A組(主板編號(hào)為1)設(shè)備中,只有第1塊(主測(cè)試板)與第2塊測(cè)試板連接正常,可以進(jìn)行測(cè)試,其余各測(cè)試板不能進(jìn)行測(cè)試。區(qū)③為其他功能欄,其中“發(fā)送測(cè)試”用于手動(dòng)測(cè)試過(guò)程,實(shí)際機(jī)臺(tái)自動(dòng)測(cè)試過(guò)程中不需使用;“量產(chǎn)配置文件”用于針對(duì)不同類型的TF卡選擇不同的配置信息;“選擇平臺(tái)”用于生產(chǎn)不同類型的TF卡。區(qū)④為統(tǒng)計(jì)信息欄,顯示測(cè)試總數(shù)、成功的次數(shù)、失敗的次數(shù)。
圖3 生產(chǎn)測(cè)試工具主頁(yè)面
測(cè)試完成界面如圖4所示。
圖4 測(cè)試完成界面
主ARM測(cè)試板接收測(cè)試PC發(fā)送的USB命令,根據(jù)命令運(yùn)行相應(yīng)的測(cè)試程序,同時(shí)將命令廣播給從ARM測(cè)試板,啟動(dòng)所有ARM測(cè)試板的測(cè)試,并將測(cè)試結(jié)果反饋給測(cè)試PC。主ARM測(cè)試板控制流程如圖5所示。
從ARM測(cè)試板接收串口數(shù)據(jù)并解析,根據(jù)命令運(yùn)行相應(yīng)程序,并向主ARM板發(fā)送反饋信息。從ARM測(cè)試板控制流程如圖6所示。
圖5 主ARM測(cè)試板控制流程圖
圖6 從ARM測(cè)試板控制流程圖
3.4.1 幀格式
RS485總線只制定了物理層電氣標(biāo)準(zhǔn),對(duì)上層通信協(xié)議沒有規(guī)定,這給設(shè)計(jì)者提供了很大的靈活性。一套完整的通訊協(xié)議應(yīng)從多個(gè)方面加以考慮,既要求結(jié)構(gòu)簡(jiǎn)單、功能完備,又要求具有可擴(kuò)充性與兼容性,并且盡量標(biāo)準(zhǔn)化。本測(cè)試平臺(tái)采用的通訊協(xié)議是在充分考慮到平臺(tái)本身的功能特點(diǎn),再參考國(guó)際標(biāo)準(zhǔn)通信規(guī)約的基礎(chǔ)上制定的,適用于主ARM測(cè)試板與各個(gè)從ARM測(cè)試板進(jìn)行點(diǎn)對(duì)點(diǎn)的或一主多從的數(shù)據(jù)交換方式,具體如下:
主ARM測(cè)試板命令幀:
頭碼 地址碼 操作命令 數(shù)據(jù)字段 校驗(yàn)和 尾碼1 byte 1 byte 1 byte DATA CS 1 byte
從ARM測(cè)試板響應(yīng)幀:
頭碼 地址碼 狀態(tài)反饋 數(shù)據(jù)字段 校驗(yàn)和 尾碼1 byte 1 byte 1 byte DATA CS 1 byte
頭碼 數(shù)據(jù)幀起始標(biāo)志,用于觸發(fā)通信,本協(xié)議中規(guī)定以“FF”為頭碼。
地址碼 從ARM測(cè)試板的地址編碼,設(shè)定范圍:1~7,0為廣播通信地址。
操作命令 操作命令存在于主ARM測(cè)試板發(fā)送的數(shù)據(jù)幀中,用于定義發(fā)送此次數(shù)據(jù)幀要完成的任務(wù)。根據(jù)操作命令的不同,幀長(zhǎng)度也有所不同。操作命令為一個(gè)字節(jié)長(zhǎng)度,每一位代表不同的內(nèi)容對(duì)應(yīng)不同的命令代碼,具體內(nèi)容如下所示。
數(shù)據(jù) 功能0測(cè)試ARM測(cè)試板連接狀態(tài)向各個(gè)從ARM測(cè)試板分發(fā)數(shù)據(jù)2進(jìn)行模塊測(cè)試3下載代碼4查詢/讀取從ARM測(cè)試板信息5-F 保留1
狀態(tài)反饋 從ARM測(cè)試板對(duì)主ARM測(cè)試板的響應(yīng),主要用于回饋從ARM測(cè)試板對(duì)主ARM測(cè)試板命令幀的執(zhí)行情況。從ARM測(cè)試板響應(yīng)定義如下:
數(shù)據(jù) 意義 數(shù)據(jù) 意義D1H 測(cè)試板通信失敗 D6H 下載代碼失敗D2H 初始化失敗 D7H 測(cè)試成功D3H SRAM測(cè)試失敗 D8H 未執(zhí)行D4H Nandflash測(cè)試失敗 D9H 超時(shí)D5H Nor flash測(cè)試失敗 其他 保留
數(shù)據(jù)字段 本字段分兩部分,第1部分為一個(gè)字節(jié),表示整個(gè)數(shù)據(jù)字段的字節(jié)數(shù),L=0表示無(wú)數(shù)據(jù)域。第2部分則為通信中要傳輸?shù)臄?shù)據(jù)內(nèi)容,傳輸內(nèi)容的長(zhǎng)度隨著操作命令而改變。
校驗(yàn)和 從地址碼開始到校驗(yàn)和之前的所有字節(jié)的模256的和。
尾碼 數(shù)據(jù)幀結(jié)束標(biāo)志,本協(xié)議中規(guī)定以“DD”為尾碼[7-8]。3.4.2 通信過(guò)程
主ARM測(cè)試板與從ARM測(cè)試板構(gòu)成的多機(jī)通信系統(tǒng)采用主從式結(jié)構(gòu),數(shù)據(jù)通信總是由主ARM測(cè)試板發(fā)起。主ARM測(cè)試板處于發(fā)送狀態(tài)時(shí),從ARM測(cè)試板總是處于接收狀態(tài)。主ARM測(cè)試板定時(shí)向從ARM測(cè)試板發(fā)送地址幀,這時(shí)每塊從ARM測(cè)試板都中斷接收并與本機(jī)地址比較,若主ARM測(cè)試板發(fā)送的地址信息與本從ARM測(cè)試板的編號(hào)相符,則接收該數(shù)據(jù),否則繼續(xù)接收總線上的數(shù)據(jù)。若從ARM測(cè)試板需要發(fā)送數(shù)據(jù),則必須等到主測(cè)試板輪詢過(guò)該從ARM測(cè)試板時(shí),才可提出請(qǐng)求。這種網(wǎng)絡(luò)模式下,從ARM測(cè)試板不會(huì)“偵聽”其他從ARM測(cè)試板對(duì)主ARM測(cè)試板的響應(yīng),這樣就不會(huì)對(duì)其他從ARM測(cè)試板產(chǎn)生錯(cuò)誤的響應(yīng)。
當(dāng)主ARM測(cè)試板發(fā)出數(shù)據(jù)幀后,如果在規(guī)定的時(shí)間內(nèi)沒有收到從機(jī)的應(yīng)答幀,則主機(jī)認(rèn)為幀丟失并重發(fā)數(shù)據(jù)幀;如果發(fā)送3次仍沒有收到應(yīng)答幀,則系統(tǒng)認(rèn)為該次通信失敗,報(bào)錯(cuò)[5,9]。
本文提出了一種基于RS485總線的SoC產(chǎn)品自動(dòng)化批量測(cè)試平臺(tái)的設(shè)計(jì),并以一種TF卡為例介紹了測(cè)試平臺(tái)的硬件設(shè)計(jì)和軟件設(shè)計(jì)。目前該測(cè)試平臺(tái)已應(yīng)用于測(cè)試廠TF卡的各模塊(Nor flash、Nandflash、SRAM)的測(cè)試,經(jīng)批量測(cè)試結(jié)果表明,使用該測(cè)試平臺(tái)1 h測(cè)試TF數(shù)量為傳統(tǒng)測(cè)試方法的32倍,顯著地提高了生產(chǎn)和測(cè)試的效率。
[1]廣州周立功單片機(jī)發(fā)展有限公司.RS485協(xié)議標(biāo)準(zhǔn)[S].周立功公司,2004.
[2]杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2003.
[3]馬忠梅等.ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)[M].北京:航空航天大學(xué)出版社,2001.
[4]ARM 公司.ARM Architecture Reference Manual[S].ARM 公司,2000.
[5]范越等.基于RS485總線的自動(dòng)化檢測(cè)系統(tǒng)的研制[J].現(xiàn)代電子技術(shù),2008.(05):142-144.
[6]謝春萍,陳鐵軍.基于RS485的多機(jī)串行通信系統(tǒng)的設(shè)計(jì)[J].玉林師范學(xué)院學(xué)報(bào),2006.(05):158-161.
[7]李圣明,曹玉強(qiáng),孫清.基于 RS485總線的分布式測(cè)控系統(tǒng)[J].儀表技術(shù)與傳感器,2004.(11):22-24.
[8]謝軍芳.基于RS485的分布式整流橋測(cè)試系統(tǒng)[J].硅谷,2008.(19):45-46.
[9]張冰.一種電子產(chǎn)品老化測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2007.(20):13-14.