10 !***************************************************************
20 ! Comprehensive Example Program
30 ! 8960 W-CDMA Loopback Test Mode
40 !
50 ! This is a program to demonstrate the use of the 8960
60 ! with E1963A W-CDMA TA testing a FDD W-CDMA UE call processing.
70 ! The 8960 uses test control protocol to perform testing.
80 !
90 !***************************************************************
100 !
110 COM /Address/ INTEGER Testset
120 Testset=714
130 ON TIMEOUT 7,20 GOSUB Timeout
140 Rf_level=-35
150 CLEAR SCREEN
160 !
170 !***************************************************************
180 ! Step 1: Set Up Test Set
190 !***************************************************************
200 !
210 OUTPUT Testset;"*RST"
220 OUTPUT Testset;"*CLS"
230 OUTPUT Testset;"SYST:COMM:GPIB:DEB ON"
240 OUTPUT Testset;"CALL:OPER:MODE OFF"
250 OUTPUT Testset;"SYST:CORR:FREQ 2000MHZ"
260 OUTPUT Testset;"SYST:CORR -1"
270 !
280 !***************************************************************
290 ! Step 2: Configure Test Set and UE Parameters
300 !***************************************************************
310 !
320 ! Cell Parameters
330 OUTPUT Testset;"CALL:LAC 30865" !Correct LAC avoids Location Update
340 OUTPUT Testset;"CALL:MCC 234"
350 OUTPUT Testset;"CALL:MNC 56"
360 OUTPUT Testset;"CALL:PAG:REP:STAT:WCDMA ON"
370 ! Generator Info
380 ! -Downlink Channel Codes
390 OUTPUT Testset;"CALL:SCOD:PRIM 0"
400 OUTPUT Testset;"CALL:SRB:CCH:DED:BPS3400:CCOD CODE12"
410 OUTPUT Testset;"CALL:CCPC:SEC:CCOD CODE7"
420 OUTPUT Testset;"CALL:PICH:CCOD CODE16"
430 OUTPUT Testset;"CALL:AICH:CCOD CODE10"
440 OUTPUT Testset;"CALL:DPCH:RMC12:CCOD CODE9"
450 ! -Downlink Channel Levels
460 OUTPUT Testset;"CALL:CPIC -4.8"
470 OUTPUT Testset;"CALL:CCPC:PRIM -7.1"
480 OUTPUT Testset;"CALL:CCPC:SEC -6.9"
490 OUTPUT Testset;"CALL:PICH -9.9"
500 OUTPUT Testset;"CALL:AICH -9.9"
510 OUTPUT Testset;"CALL:DPCH -12"
520 ! -Connected DL Channel Levels
530 OUTPUT Testset;"CALL:CONN:CPIC -3.3"
540 OUTPUT Testset;"CALL:CONN:CCPC:PRIM -5.35"
550 OUTPUT Testset;"CALL:CONN:PICH -20" !Change PICH to give OCNS
560 OUTPUT Testset;"CALL:CONN:DPCH -10.3"
570 ! -AWGN Power
580 OUTPUT Testset;"CALL:AWGN:POW:STAT OFF"
590 ! Uplink Parameters
600 OUTPUT Testset;"CALL:UPL:PRAC:POW:STEP 3"
610 OUTPUT Testset;"CALL:UPL:PRAC:SIGN 0"
620 OUTPUT Testset;"CALL:UPL:PRAC:SCOD 0"
630 OUTPUT Testset;"CALL:UPL:DPCH:SCOD 0"
640 !
650 ! Call Parameters
660 OUTPUT Testset;"CALL:POW ";Rf_level
670 OUTPUT Testset;"CALL:DPCH:TYP RMC12"
680 OUTPUT Testset;"CALL:CHAN 10563"
690 OUTPUT Testset;"CALL:UPL:CHAN 9613"
700 OUTPUT Testset;"CALL:DTCH:DATA PRBS15"
710 OUTPUT Testset;"CALL:SRB:CCH:DED:DRAT BPS3400"
720 ! Uplink Channel Levels
730 OUTPUT Testset;"CALL:CLPC:UPL:MODE ACT"
740 OUTPUT Testset;"CALL:MS:POW:TARG 0 DBM"
750 ! Call Control
760 OUTPUT Testset;"CALL:PAG:IMSI '1234567890'"
770 OUTPUT Testset;"CALL:OPER:MODE CALL"
780 !
790 !***************************************************************
800 ! Step 3: Measurement Parameters
810 !***************************************************************
820 !
830 ! Set all measurement triggers to single
840 OUTPUT Testset;"SET:CONT:OFF"
850 ! Set up the Thermal Power measurement
860 OUTPUT Testset;"SET:WTP:TIM 7;COUN 1"
870 ! Set up the Channel Power measurement
880 OUTPUT Testset;"SET:WCP:TIM 7;COUN 1"
890 OUTPUT Testset;"SET:WCP:INT:TIME .667 MS"
900 OUTPUT Testset;"SET:WCP:FILT ON" ! Turn the RRC filter on
910 ! Set up the Waveform Quality measurement
920 OUTPUT Testset;"SET:WWQ:TIM 7;COUN 1;TSL 1"
930 ! Set up the ACLR measurement
940 OUTPUT Testset;"SET:WACL:TIM 7;COUN 1"
950 ! Set up the Loopback BER measurement
960 OUTPUT Testset;"SET:WBER:TIM 7;COUN 10000"
970 ! Set up the Occupied Bandwidth measurement
980 OUTPUT Testset;"SET:WOBW:TIM 7;COUN 1"
990 ! Set up the Spectrum Emission Mask measurement
1000 OUTPUT Testset;"SET:WSEM:TIM 7;COUN 1"
1010 !
1020 !***************************************************************
1030 ! Step 4: Make a Connection
1040 !***************************************************************
1050 !
1060 PRINT "Turn the UE on now."
1070 Originate ! Subroutine to originate a connection
1080 !
1090 !***************************************************************
1100 ! Step 5: INITiate and FETCh Measurements
1110 !***************************************************************
1120 !
1130 CLEAR SCREEN
1140 PRINT "W-CDMA Test Results:"
1150 PRINT
1160 Time1=TIMEDATE ! Start a timer for evaluating test times
1170 !
1180 FOR I=1 TO 1 !Change index depending on # of freq/power levels"
1190 OUTPUT Testset;"INIT:WBER;WTP;WWQ;WACL;WOBW;WSEM"
1200 Fetch_results! Go to a subroutine to handle the results
1210 !
1220 !***************************************************************
1230 ! Step 6: Reconfigure Test Set and UE Connection Parameters
1240 !***************************************************************
1250 !
1260 !Use deferred commands to set up new channels
1270 OUTPUT Testset;"CALL:SET:CHAN:DOWN 10526"
1280 OUTPUT Testset;"CALL:SET:CHAN:UPL 9626"
1290 OUTPUT Testset;"CALL:HAND:PCR" ! Executes the handoff
1300 OUTPUT Testset;"CALL:STAT?" ! Verify the handoff success
1310 ENTER Testset;Call_state$
1320 IF Call_stat$<>"CONN" THEN Dropped_call
1330 NEXT I
1340 !
1350 !****************************************************************
1360 ! Step 7: End the Connection
1370 !****************************************************************
1380 !
1390 OUTPUT Testset;"CALL:END"
1400 OUTPUT Testset;"CALL:CONN?"
1410 ENTER Testset;Callstate
1420 IF Callstate=1 THEN
1430 PRINT "Make sure the phone has released the call."
1440 OUTPUT Testset;"SYST:PRES3"
1450 END IF
1460 PRINT ""
1470 PRINT "Testing Complete."
1480 Testtime=PROUND(TIMEDATE-Time1,-2)
1490 PRINT ""
1500 PRINT "Test time was ";Testtime;" seconds."
1510 STOP
1520 Timeout: !Comes here only when program times out
1530 PRINT "Program time out."
1540 END
1550 !
1560 !*****************************************************************
1570 ! Subroutine Section
1580 !*****************************************************************
1590 !
1600 SUB Print_results(Meas_name$,Res1,OPTIONAL Res2,Res3,Res4,Res5,Res6)
1610 SELECT Meas_name$
1620 CASE "WTP"
1630 PRINT USING "5X,""Thermal Power:"",9X,M2D.2D,"" dBm""";Res1
1640 CASE "WWQ"
1650 PRINT USING "5X,""Max EVM:"",15X,M2D.2D,"" %""";Res1
1660 PRINT USING "5X,""Worst Freq Error:"",5X,M3D.2D,"" Hz""";Res2
1670 PRINT USING "5X,""Max Origin Offset:"",5X,M2D.2D,"" dB""";Res3
1680 PRINT USING "5X,""Max Phase Error:"",7X,M2D.2D,"" Deg""";Res4
1690 PRINT USING "5X,""Max Mag. Error:"",8X,M2D.2D,"" %""";Res5
1700 CASE "WACL"
1710 PRINT USING "5X,""ACLR -5 MHz Offset:"",4X,M2D.2D,"" dBc""";Res1
1720 PRINT USING "5X,""ACLR +5 MHz Offset:"",4X,M2D.2D,"" dBc""";Res2
1730 PRINT USING "5X,""ACLR -10 MHz Offset:"",3X,M2D.2D,"" dBc""";Res3
1740 PRINT USING "5X,""ACLR +10 MHz Offset:"",3X,M2D.2D,"" dBc""";Res4
1750 CASE "WCP"
1760 PRINT USING "5X,""Channel Power:"",9X,M2D.2D,"" dBm""";Res1
1770 CASE "WBER"
1780 PRINT USING "5X,""Loopback BER:"",9X,M3D.2D,"" %""";Res1
1790 CASE "WOBW"
1800 PRINT USING "5X,""Occupied Bandwidth:"",4X,M1D.3D,"" MHz""";Res1
1810 CASE "WSEM"
1820 IF Res1=0 THEN Res1$="PASS"
1830 IF Res1=1 THEN Res1$="FAIL"
1840 PRINT " Spectrum Emission Mask: ";Res1$
1850 END SELECT
1860 SUBEND
1870 SUB Dropped_call
1880 PRINT " "
1890 PRINT "Call was dropped. Program aborted."
1900 STOP
1910 SUBEND
1920 SUB Orig_failed
1930 COM /Address/ INTEGER Testset
1940 CLEAR Testset
1950 OUTPUT Testset;"CALL:END"
1960 PRINT "Origination failed. Check conditions and run again."
1970 STOP
1980 SUBEND
1990 SUB Fetch_results
2000 COM /Address/ INTEGER Testset
2010 REPEAT
2020 OUTPUT Testset;"INIT:DONE?"
2030 ENTER Testset;Measdone$
2040 SELECT Measdone$
2050 CASE "WTP"
2060 OUTPUT Testset;"FETC:WTP:INT?;POW?"
2070 ENTER Testset;Integrity,Power
2080 IF Integrity=0 THEN
2090 Print_results(Measdone$,Power)
2100 ELSE
2110 Meas_error(Measdone$,Integrity)
2120 END IF
2130 CASE "WCP"
2140 OUTPUT Testset;"FETC:WCP:INT?;POW?"
2150 ENTER Testset;Integrity,Power
2160 IF Integrity=0 THEN
2170 Print_results(Measdone$,Power)
2180 ELSE
2190 Meas_error(Measdone$,Integrity)
2200 END IF
2210 CASE "WWQ"
2220 OUTPUT Testset;"FETC:WWQ?"
2230 ENTER Testset;Integrity,Evm,Ferr,Ooff,Perr,Merr
2240 IF Integrity=0 THEN
2250 Print_results(Measdone$,Evm,Ferr,Ooff,Perr,Merr)
2260 ELSE
2270 Meas_error(Measdone$,Integrity)
2280 END IF
2290 CASE "WACL"
2300 OUTPUT Testset;"FETC:WACL:INT?;AVER?"
2310 ENTER Testset;Integrity,Negfive,Posfive,Negten,Posten
2320 IF Integrity=0 THEN
2330 Print_results(Measdone$,Negfive,Posfive,Negten,Posten)
2340 ELSE
2350 Meas_error(Measdone$,Integrity)
2360 END IF
2370 CASE "WBER"
2380 OUTPUT Testset;"FETC:WBER?"
2390 ENTER Testset;Integrity,Ber
2400 IF Integrity=0 THEN
2410 Print_results(Measdone$,Ber)
2420 ELSE
2430 Meas_error(Measdone$,Integrity)
2440 END IF
2450 CASE "WOBW"
2460 OUTPUT Testset;"FETC:WOBW?"
2470 ENTER Testset;Integrity,Obw
2480 IF Integrity=0 THEN
2490 Print_results(Measdone$,Obw)
2500 ELSE
2510 Meas_error(Measdone$,Integrity)
2520 END IF
2530 CASE "WSEM"
2540 OUTPUT Testset;"FETC:WSEM?"
2550 ENTER Testset;Integrity,Overall,Pow,Range1,Range2,Range3,Range4
2560 IF Integrity=0 THEN
2570 Print_results(Measdone$,Overall)
2580 ELSE
2590 Meas_error(Measdone$,Integrity)
2600 END IF
2610 END SELECT
2620 UNTIL Measdone$="NONE"
2630 SUBEND
2640 SUB Meas_error(Measdone$,Integrity)
2650 SELECT Integrity
2660 CASE 2
2670 Err$=" Meas Timeout"
2680 CASE 5
2690 Err$=" Over Range"
2700 CASE 6
2710 Err$=" Under Range"
2720 CASE 17
2730 Err$=" Cannot Correlate"
2740 CASE 19
2750 Err$=" Temp Drift"
2760 CASE ELSE
2770 Err$=""
2780 END SELECT
2790 PRINT Measdone$;" Integrity is";Integrity;Err$
2800 SUBEND
2810 SUB Originate
2820 COM /Address/ INTEGER Testset
2830 ON TIMEOUT 7,10 CALL Orig_failed
2840 OUTPUT Testset;"CALL:ORIG:SEQ"
2850 OUTPUT Testset;"CALL:CONN?"
2860 ENTER Testset;Connected
2870 IF NOT Connected THEN
2880 PRINT "Call origination not successful."
2890 STOP
2900 END IF
2910 SUBEND