1 引言
  TMS320VC5402ä»¥å…¶ä½Žæˆæœ¬ã€ä½ŽåŠŸè€—ã€è³‡æºå¤šçš„ç‰¹é»žåœ¨é€šä¿¡ã€æŽ§åˆ¶é ˜åŸŸå¾—åˆ°äº†å»£æ³›çš„æ‡‰ç”¨ã€‚ç‰‡ä¸Šé›†æˆäº†æœ€å¤§192kBå˜å„²ç©ºé–“(64kB RAMã€64kB ROMã€64kB I/O),具有時分多路串å£TMD,2個緩沖串å£BSPã€8ä½å¹¶è¡Œä¸»æ©ŸæŽ¥å£HPIã€å¯ç·¨ç¨‹ç‰å¾…狀態發生器ç‰ï¼Œå®Œå…¨å¯ä»¥æ»¿è¶³æ•¸æ“šè™•ç†åŠæŽ§åˆ¶è¦æ±‚。基于 5402構建的應用系統ä¸å¿…ä¸å¯å°‘的是å„種數據通信接å£çš„è¨è¨ˆã€‚與并å£ç›¸æ¯”,串行接å£çš„特點是減少器件引腳數目,節çœäº†ç¡¬ä»¶ç³»çµ±çš„é«”ç©ï¼Œé™ä½Žäº†æŽ¥å£è¨è¨ˆçš„復雜性。實際應用ä¸ï¼Œå„系統之間需è¦å¯¦ç¾ç•°æ¥ä¸²è¡Œæ•¸æ“šå‚³è¼¸å’Œé€šä¿¡ï¼Œè€ŒDSP5402å…·æœ‰åŒæ¥ä¸²å£ï¼Œèˆ‡æ¨™æº–的異æ¥ä¸²è¡ŒæŽ¥å£ä¸åŒï¼Œæœ¬æ–‡é‡å°é€™ç¨®æ‡‰ç”¨ï¼Œè¨è¨ˆå¯¦ç¾äº†DSP5402å’ŒPC機的異æ¥ä¸²è¡Œé€šä¿¡ã€‚
  
2 串行通信和DSP5402串å£
ã€€ã€€åœ¨å·¥æ¥æŽ§åˆ¶å’Œå¯¦éš›æ‡‰ç”¨ä¸ï¼Œä¸²è¡Œé€šä¿¡çš„æ‡‰ç”¨å·²éžå¸¸æ™®é,圖1示出常見的三種232通信方å¼ï¼Œåœ¨æ¤ç†è€…é¸ç”¨çŸè·é›¢æœ‰ç·šå‚³è¼¸æ–¹å¼ã€‚ç›®å‰ï¼Œå¤§å¤šæ•¸PC機的串å£é‡‡ç”¨ RS-232標準,該標準è¦å®šé‡‡ç”¨ä¸€å€‹25腳的DB25連接器,實際上RS-232çš„25æ¢å¼•線有許多是很少用的,所以目å‰è¼ƒç‚ºå¸¸ç”¨çš„䏲壿œ‰9é‡å’Œ25 é‡ï¼Œåœ¨æ™®é€šé›»è·¯è¨è¨ˆä¸æœ€ç‚ºç°¡å–®ä¸”常用的是三線制接法,å³åœ¨é€šä¿¡ä¸ä¸éœ€è¦RS-232的控制è¯çµ¡ä¿¡è™Ÿï¼Œé‡‡ç”¨ç™¼é€æ•¸æ“šï¼ˆTXDï¼‰ã€æŽ¥æ”¶æ•¸æ“šï¼ˆRXD)ã€åœ° (GND)三腳相連,便å¯å¯¦ç¾å…¨é›™å·¥ç•°æ¥ä¸²è¡Œé€šä¿¡ï¼Œæœ¬æ–‡å³é‡‡ç”¨æ¤æ³•實ç¾PC與DSP的串行通信。

[align=center]圖1  三種RS-232通信方å¼
[/align]
  由于RS-232䏿²’有時é˜ä¿¡è™Ÿï¼Œæ‰€ä»¥æŒ‰ç…§è¨å®šçš„固定波特率傳é€ã€‚在一信號ä¸åŒ…括開始ä½ã€åœæ¢ä½å’Œæ•¸æ“šä½ï¼Œæ ¡é©—ä½å¯ä»¥é¸æ“‡ã€‚其䏿•¸æ“šä½ç‚º5-8bitsï¼Œå¥‡å¶æ ¡é©—ä½å…±æœ‰5種方å¼å¯é¸:å¥‡æ ¡é©—ã€å¶æ ¡é©—ã€å§‹çµ‚為1ã€å§‹çµ‚為0以åŠç©º;åœæ¢ä½ä¹Ÿæœ‰ä¸‰ç¨®é¸æ“‡:1ä½ã€11/2ä½ä»¥åŠ2ä½ã€‚串å£å‚³æ•¸æ™‚低ä½å„ªå…ˆï¼Œç”±é–‹å§‹ä½è¡¨ç¤ºæ•¸æ“šå‚³è¼¸ã€‚
  DSP5402有2å€‹å¤šç·©æ²–çš„åŒæ¥ä¸²å£ï¼Œé€šéŽå¹€ä¿¡è™Ÿä¾†æŽ§åˆ¶æ•¸æ“šæµã€‚æ¯ä¸€å€‹ä¸²å£æœ‰6個信號:CLKR/X:接收ã€ç™¼é€æ™‚é˜ä¿¡è™Ÿï¼ŒDR/DX:接收ã€ç™¼é€ä¸²è¡Œæ•¸æ“šä¿¡è™Ÿï¼ŒFSR/FSX:接收ã€ç™¼é€å¹€åŒæ¥ä¿¡è™Ÿ;ä¸²è¡ŒæŽ¥å£æœ‰5個寄å˜å™¨:數據接收寄å˜å™¨ï¼ˆDRRï¼‰ã€æ•¸æ“šç™¼é€å¯„å˜å™¨ï¼ˆDXR)ã€ä¸²è¡ŒæŽ¥å£æŽ§åˆ¶å¯„å˜å™¨ (SPCï¼‰ã€æ•¸æ“šæŽ¥æ”¶ç§»ä½å¯„å˜å™¨ï¼ˆRSRï¼‰ã€æ•¸æ“šç™¼é€ç§»ä½å¯„å˜å™¨ï¼ˆXSR),其ä¸3個å˜å„²å™¨æ˜ 射寄å˜å™¨ï¼ˆSPCã€DXRå’ŒDRR)和2個程åºä¸èƒ½ç›´æŽ¥è¨ªå•的寄å˜å™¨ï¼ˆRSRå’ŒXSR)來æ“作,RSRå’ŒXSRåœ¨åŸ·è¡Œé›™ç·©æ²–åŠŸèƒ½æ™‚å¾ˆæœ‰ç”¨ã€‚ç™¼é€æ•¸æ“šå¯«åˆ°DXRä¸ï¼Œè€ŒæŽ¥æ”¶æ•¸æ“šå¾žDRRä¸è®€å–。其å„寄å˜å™¨é…ç½®åŠæŽ§åˆ¶è«‹åƒè€ƒæ–‡ç»[2]。
  
3 DSPå’ŒPC機串å£é€šä¿¡çš„軟硬件實ç¾
  3.1 DSP和PC機UART硬件連接
  由上所述,PC機的異æ¥ä¸²å£å’ŒDSP5402çš„åŒæ¥ä¸²å£åœ¨æ•¸æ“šæ ¼å¼ä»¥åŠå‚³é€æŽ§åˆ¶ä¸Šæœ‰å€åˆ¥ï¼Œä½†æ˜¯é€šéŽå¿…è¦çš„硬件控制和軟件模擬就å¯å¯¦ç¾DSP5402與標準串å£é–“的通信。DSP5402å’ŒPC機的UART實ç¾ä¸»è¦æœ‰äºŒç¨®ç¡¬ä»¶æ–¹æ³•和二種軟件模擬方法。硬件方法如下:基于MAX3100çš„åŒæ¥è½‰ç•°æ¥å¯¦ç¾å’Œåˆ©ç”¨ DSP5402 I/Oæ¨¡æ“¬æ™‚åºæ³•。
  MAX3110E內部集æˆäº†å…¨åŠŸèƒ½UART和內置電泵電容以åŠåœŸ15kV ESDä¿è·çš„RS-232收發器。其ä¸ï¼ŒUART部分采用兼容SPITM/QSPITM/MICROWIRETM的串行接å£ï¼Œå› 而å¯ç¯€çœç·šè·¯æ¿ç©ºé–“和微控制器的Iï¼0引腳。由于RS-232部分使用了特有的低壓差輸出級,從而使雙接收/ç™¼é€æŽ¥å£èƒ½å¤ åœ¨é«˜é€Ÿé€šä¿¡ã€æ£å¸¸é›»æºä¸‹æä¾›çœŸæ£çš„RS-232特性,而功耗僅600μA。通éŽMAX3110Eå¯å¯¦ç¾åŒæ¥ä¸²è¡Œæ•¸æ“šæŽ¥å£åˆ°ç•°æ¥ä¸²è¡Œé€šä¿¡å£ï¼ˆRS-232)的轉æ›ï¼Œå®ƒå¯ç›´æŽ¥èˆ‡PC機的串行å£ï¼ˆCOM)相連。 MAX3110E具有尺寸å°ï¼Œåƒ¹æ ¼ä½Žï¼ŒåŠŸè€—å°‘ï¼Œé€šä¿¡é€ŸçŽ‡é«˜ç‰ç‰¹é»žï¼Œå› æ¤æœ‰è‘—è¼ƒå¥½çš„æ‡‰ç”¨å‰æ™¯ã€‚MAX3110E包括UART與RS-232兩個ç¨ç«‹çš„部分。其ä¸ï¼ŒUART部分包括兼容于SPI的串行接å£ã€å¯ç·¨ç¨‹æ³¢ç‰¹çŽ‡ç™¼ç”Ÿå™¨ã€ç™¼é€ç·©æ²–器åŠç™¼é€ç§»ä½å¯„å˜å™¨ã€æŽ¥æ”¶ç·©æ²–å™¨åŠæŽ¥æ”¶ç§»ä½å¯„å˜å™¨ã€8å—節接收FIFOä»¥åŠæœ‰å››ç¨®å¯å±è”½ä¸æ–·æºçš„䏿–·ç”¢ç”Ÿå™¨ã€‚而RS-232部分包括自帶電容的電泵,以åŠå¯ç”±SHDNå°å…¶é€²è¡Œç¡¬ä»¶é—œæ–·çš„。
  MAX3110E通éŽSPI接å£èˆ‡DSP5402進行16使•¸æ“šçš„全雙工通信。DSP5402通éŽBDXç·šå‘MAX3110發é€çš„16ä½ä¸²è¡Œæ•¸æ“šåºåˆ—ä¸åŒ…æ‹¬å‚³è¼¸æ ¼å¼æŽ§åˆ¶å—,如波特率è¨ç½®ã€ä¸æ–·å±è”½ã€å¥‡å¶æ ¡é©—ä½ç‰ã€‚DSP5402çš„McBSP串行接å£å·¥ä½œäºŽSPIæ¨¡å¼æ™‚å¯ç›´æŽ¥èˆ‡MAX3110進行連接。 DSP5402çš„BDX1與MAX3110çš„DINé€£æŽ¥ä½œç‚ºç™¼é€æ•¸æ“šç·šï¼ŒBDR1與DOUT連接作為接收數據線,發é€åŒæ¥è„ˆæ²–信號BFSX1作為片é¸ä¿¡è™Ÿï¼Œç™¼é€æ™‚é˜ä¿¡è™ŸBCLKX1作為MAX3110的串行時é˜è¼¸å…¥ï¼Œç¡¬ä»¶æŽ¥å£åœ–如圖2所示:

[align=center] 圖2 DSP5402å’ŒMAX3110硬件接å£åœ–
[/align]
ã€€ã€€åŒæ™‚å¿…é ˆæ ¹æ“šæ™‚åºè¨ç½®DSP5402çš„McBSP寄å˜å™¨ï¼Œæ¤ç¨®UARTæ–¹å¼æ‰å¾—以實ç¾ï¼Œæ™‚åºåœ–如圖3所示:
[align=center] 圖3 MAX3110å’ŒDSP5402é…åˆæ™‚åº
[/align][align=left]
  利用DSP5402 I/Oæ¨¡æ“¬æ™‚åºæ³•分æžå¦‚下:ç”¨å®šæ™‚å™¨ä¸æ–·ä¾†è™•ç†æ•¸æ“šï¼Œç”¨I/Oå£ä¾†é…置作為輸入輸出,由于DSP5402å–®ç¨I/O引腳較少,節çœè³‡æºï¼Œé€™é‡Œä½¿ç”¨DSP5402的標志ä½å¼•è…³XFå’Œé…åˆè»Ÿä»¶å¾—到實ç¾ï¼Œç¡¬ä»¶åŽŸç†åœ–如圖4所示:
[/align]

[align=center] 圖4 硬件原ç†åœ–
[/align]
  3.2 DSPå’ŒPC機UART軟件實ç¾
  å°äºŽåŸºäºŽMAX3100çš„åŒæ¥è½‰ç•°æ¥å¯¦ç¾DSP5402編程如下:
  stm SPCR11,SPSA1  ; é…ç½®SPCR11
  stm #1800h,MCBSP1
  stm SPCR21,SPSA1 ; é…ç½®SPCR21
  stm #0000h,MCBSP1
  stm PCR1, SPSA1 ; é…ç½®PCR1
  stm #0a0ch,MCBSP1
  stm RCR11,SPSA1 ; é…ç½®RCR11
  stm #0040h,MCBSP1
  … …    ; é…ç½®RCR21
  stm XCR11,SPSA1 ; é…ç½®XCR11
  stm #0040h,MCBSP1
  … …  ; é…ç½®XCR21
  stm SRGR11,SPSA1 ; é…ç½®SRGR11
  stm #0027h,MCBSP1
  … …   ; é…ç½®SRGR21
  rpt #20 ; ç‰å¾…2個CLKSRG時é˜å‘¨æœŸ
  nop
  stm SPCR21,SPSA1 ; é…ç½®SPCR21
  stm #0040h,MCBSP1
  ; 啟動MCBSP1采樣率發生器
  rpt #20 ; ç‰å¾…2個CLKG時é˜å‘¨æœŸ
  nop
  stm SPCR11,SPSA1
  stm #1801h,MCBSP1 ; 啟動接收
  stm SPCR21,SPSA1 ; é…ç½®SPCR21
  stm #0041h,MCBSP1 ; 啟動MCBSP1發é€ç«¯
  stm SPCR21,SPSA1 ; é…ç½®SPCR21
  stm #00c1h,MCBSP1 ; å•Ÿå‹•å¹€åŒæ¥è„ˆæ²–
  rpt #80 ; ç‰å¾…8個CLKG時é˜å‘¨æœŸ
  nop
  ld? #0h,A
  stm #0c042h,DXR11
  ; é…ç½®MAX3110,2å€‹åœæ¢ä½
  é…置完æˆå³å¯ç™¼é€æ•¸æ“šï¼ŒæŽ¥æ”¶ç¨‹åºåªéœ€ä¾æ“𿍡å¼é…置相應的接收寄å˜å™¨ã€‚圖5示出測試界é¢ã€‚

[align=center]圖5  串å£èª¿è©¦åŠ©æ‰‹æ¸¬è©¦ç•Œé¢
[/align]
  å°äºŽI/O模擬方å¼è»Ÿä»¶ç·¨ç¨‹å¯ä»¥é€šéŽå®šæ™‚噍䏿–·ä¾†è¨ç½®é€šä¿¡æ³¢ç‰¹çŽ‡ï¼Œå°äºŽDSP5402定時需è¨ç½®TIM0ã€PRD0ã€TCR0三個寄å˜å™¨ï¼Œ
  定時時間ï¼TX(1+TDDR)X(1+PRD)。
ã€€ã€€åŒæ™‚é‚„å¯ä»¥é€šéŽè»Ÿä»¶å»¶æ™‚來è¨ç½®é€šä¿¡æ³¢ç‰¹çŽ‡ï¼Œæ–¹æ³•å¦‚ä¸‹:
  DELAY: stm #1004h,AR6   ;通信速率:1200bps
  banz $,*AR6-
  nop
  ret
  其軟件模擬程åºå¦‚圖6所示。
  二種軟件模擬在PC機上å‡éœ€é‹ç”¨ä¸²å£èª¿è©¦åŠ©æ‰‹æ¸¬è©¦ï¼Œä½œè€…å¯¦ç¾æ¸¬è©¦ç•Œé¢å¦‚圖6,為了滿足實際應用需è¦ï¼Œå¯ä»¥é‹ç”¨VC編寫自己的軟件。
[align=center] 圖6  軟件模擬程åº
[/align]
4 çµæŸèªž
  主è¦è¨Žè«–了TMS320VC5402å’ŒPC之間實ç¾UARTçš„æ–¹æ³•ï¼Œåˆ©ç”¨åŒæ¥ä¸²å£å¯¦ç¾ç°¡å–®ã€æ˜“行ã€ç©©å®š; 利用軟件模擬ä¸éœ€å°ˆç”¨ç¡¬ä»¶ï¼Œéˆæ´»ã€æ–¹ä¾¿ã€æˆæœ¬ä½Žï¼Œå„自滿足自己的需求,二種方法å‡å·²æ¸¬è©¦é€šéŽï¼Œæ¤æ€æƒ³å°ç ”ç©¶DSP5402å’Œä¸²å£æœ‰ä¸€å®šçš„åƒè€ƒåƒ¹å€¼ã€‚
                             編輯:何世平