高速誤碼測(cè)試系統(tǒng)中的C8051F005運(yùn)用
隨著通信技術(shù)的不斷發(fā)展,通信系統(tǒng)信號(hào)處理越來(lái)越快。在這種情況下,對(duì)于高速通信系統(tǒng)性能的檢驗(yàn),就需要高速誤碼測(cè)試儀。目前市而上已有多種誤碼測(cè)試儀。國(guó)內(nèi)產(chǎn)品的信號(hào)處理速度較低,而國(guó)外產(chǎn)品的功能雖然比較完善,處理速度很高,但其價(jià)格也相對(duì)較高。本文根據(jù)Vitesse公司的VSC8228芯片特點(diǎn),利用C8051F005單片機(jī)設(shè)計(jì)出一種價(jià)廉的高速誤碼測(cè)試儀。下面將對(duì)其軟硬件設(shè)計(jì),特別是C8051F005與上位機(jī)的串口通信以及與VSC8228的SPI通信進(jìn)行詳細(xì)探討。
本文引用地址:http://www.ex-cimer.com/article/195916.htm1誤碼測(cè)試系統(tǒng)概述
Cygnal公司的單片機(jī)C8051F005具有高速8051微控制器內(nèi)核,速度可達(dá)25MIPS,指令為流水線指令結(jié)構(gòu),70%的指令的執(zhí)行時(shí)間為1個(gè)或2個(gè)系統(tǒng)時(shí)鐘周期;可片內(nèi)JTAG調(diào)試和邊界掃描,這樣可提供全速、非侵人式的在系統(tǒng)調(diào)試(不需仿真器);片內(nèi)有多達(dá)60KB的FlashROM和2KB RAM,用戶無(wú)需再外擴(kuò)存儲(chǔ)器;可同時(shí)使用的硬件SMBus(I2C兼容)、SPI及UART串口,4個(gè)通用16位計(jì)數(shù)器/定時(shí)器。
VSC8228可提供的一個(gè)雙通道重發(fā)器或重定時(shí)器,能應(yīng)用于光纖信道、千比特以太網(wǎng)、SONET/SDH以及無(wú)限帶寬等多種領(lǐng)域。設(shè)備支持速率從125Mbps~4.25Gbps。該芯片可以將輸入的串行數(shù)據(jù)在重定時(shí)器模式下與本地的參考時(shí)鐘同步,內(nèi)置的碼型產(chǎn)生器與檢測(cè)器可以產(chǎn)生與探測(cè)27、223、231的偽隨機(jī)碼,40或64位用戶定義碼型以及光纖信號(hào)CRPAT、CJTPAT、CSPAT碼型。它含128個(gè)寄存器,可通過(guò)SPI或者I2C串行總線設(shè)置相關(guān)寄存器,可以實(shí)現(xiàn)誤碼檢測(cè)功能。
誤碼測(cè)試系統(tǒng)可分為兩個(gè)部分:誤碼測(cè)試部分和人機(jī)界面。測(cè)試部分由VSC8228芯片來(lái)實(shí)現(xiàn)。它完成偽隨機(jī)碼型的產(chǎn)生、同步及對(duì)比檢測(cè),計(jì)算出誤碼個(gè)數(shù)。人機(jī)界面子系統(tǒng)在整個(gè)測(cè)試系統(tǒng)中作為系統(tǒng)控制核心單元,通過(guò)人機(jī)界面完成系統(tǒng)作業(yè)。以C8051F005單片機(jī)作為人機(jī)界面硬件的控制部分,對(duì)VSC8228芯片的控制、誤碼率的計(jì)算以及測(cè)試子系統(tǒng)的各狀態(tài)的顯示都通過(guò)PC機(jī)的界面來(lái)實(shí)現(xiàn)。PC界面采用Delphi語(yǔ)言編寫(xiě)。
誤碼測(cè)試儀的工作流程如下:PC界面通過(guò)RS232串口實(shí)現(xiàn)與C8051F005的通信,將對(duì)VSC8228各寄存器的沒(méi)置發(fā)送給C8051F005單片機(jī),每個(gè)控制命令為16位;單片機(jī)通過(guò)SPI口將上位機(jī)發(fā)送過(guò)來(lái)的控制命令轉(zhuǎn)發(fā)給VSC8228,完成VSC8228各寄存器的設(shè)置。為了實(shí)時(shí)地顯示誤碼測(cè)試儀的工作狀態(tài),單片機(jī)每秒掃描一次各寄存器,將其值通過(guò)RS232串口上傳到PC界面。
由此可見(jiàn),C8051F005單片機(jī)起著VSC8228與上位機(jī)通信的橋梁作用,它與上位機(jī)的串口通信以及與VSC8228的SPI通信在誤碼測(cè)試儀的實(shí)現(xiàn)過(guò)程中起著十分重要的作用。下面通過(guò)軟硬件設(shè)計(jì)詳細(xì)分析這兩種通信。
2 誤碼測(cè)試系統(tǒng)的實(shí)現(xiàn)
2.1 硬件設(shè)計(jì)
利用C8051F005單片機(jī)的串行接口,通過(guò)RS232異步通信接口與上位機(jī)進(jìn)行通信。C8051F005通過(guò)串行口直接接收PC上位傳送來(lái)的串行數(shù)據(jù),然后把接收的數(shù)據(jù)存入數(shù)據(jù)存儲(chǔ)器;同樣,C8051F005通過(guò)串行口直接把數(shù)據(jù)傳送給PC機(jī)。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
C8051F005有一個(gè)特別的交叉開(kāi)關(guān),可將數(shù)字I/O資源分配到物理I/O端口引腳。C8051F005通過(guò)設(shè)置交叉開(kāi)關(guān)來(lái)同時(shí)使用SMBus(I2C兼容)、SPI及UART串口等。VSC8228也可通過(guò)SPI或者I2C串行總線設(shè)置相關(guān)寄存器,但由于SPI通信的速率比I2C通信快,因此為了實(shí)現(xiàn)誤碼的高速測(cè)試,這里選擇SPI作為C8051F005與VSC8228的通信協(xié)議。
SPI接口協(xié)議要求接口設(shè)備按主從方式進(jìn)行配置,且同一時(shí)間內(nèi)總線上只能有一個(gè)主器件。一般情況下,實(shí)現(xiàn)SPI接口需要3或4根線。其中:主出從入(MOSI)信號(hào)是主器件的輸出和從器件的輸入,數(shù)據(jù)傳輸時(shí)最高位在先;主人從出(MISO)信號(hào)是從器件的輸出和主器件的輸入,數(shù)據(jù)傳輸時(shí)也是最高位在先。當(dāng)SPI從器件未被選中時(shí),它將MISO引腳置于高阻狀態(tài)。串行時(shí)鐘(SCK)信號(hào)是用于同步主器件和從器件之間在MOSI和MISO線上的串行數(shù)據(jù)傳輸。從選擇(NSS)信號(hào)是一個(gè)輸入信號(hào),主器件用它來(lái)選擇處于從方式的SPI模塊,在主方式時(shí)用于禁止SPI模塊。當(dāng)處于從方式時(shí),它被拉為低電平以啟動(dòng)一次數(shù)據(jù)傳輸,并在傳輸期間保持低電平。
誤碼測(cè)試系統(tǒng)中,以C8051F005作為主器件,VSC8228為從器件,由于NSS為從器件選擇使用,將單片機(jī)的NSS引腳(P0.5)置高,用P2.4引腳與VSC8228的NSS引腳(PIO3)相連。根據(jù)MOSI及MISO上的數(shù)據(jù)在SCK的哪種極性和相位上有效,單片機(jī)上的SPI通信有四種工作模式;但是VSC8228的SPl只有一種工作模式,故在對(duì)單片機(jī)的SPI控制器進(jìn)行設(shè)置時(shí)必須考慮這點(diǎn)。圖2是VSC8228的SPI通信時(shí)序。在SPI通信時(shí),先傳輸7位地址,后傳輸讀寫(xiě)控制位OP(OP為0時(shí)表示讀,OP為1時(shí)表示寫(xiě)),最后傳輸8位數(shù)據(jù),故SPI通信的命令字長(zhǎng)度為16位。
評(píng)論