⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 54xdsp与计算机并口通讯.mht

📁 有关dsp54x各方面编程的程序
💻 MHT
📖 第 1 页 / 共 5 页
字号:
aCwxO8v50Oi0q7XdtcTK/b7dv+nH+LzkDQoNCkhPU1RBQ0subWFjcm8NCg0KaGFjayBsZG0gaHBp
YyxhIDvA27zTxvdB1NjI60hQSUPWtQ0KDQphbmQgIzA4aCxhIDvGwbHOSElOVLXExuTL+867DQoN
CmJjIGhhY2ssYW5lcSA7xdC2z0hJTlS1xNe0zKyjrNaxtb1ISU5UDQoNCqO7zrvOqjCjqLy01ve7
+sflSElOVLHq1r6jqQ0KDQouZW5kbQ0KDQoudGV4dA0KDQpzdGFydDpzdG0gIzAwYTBoLHBtc3Q7
yejWw0lQVFK8xLTmxvcNCg0Kc3RtICMwMDAwaCxzdDAgO8no1sNTVDCholNUMbzEtObG9w0KDQpz
dG0gIzI4MDBoLHN0bA0KDQpzdG0gIzAwMTAsdGNyIDu52LHVvMbKscb3DQoNCnN0bSAjMGZmZmZo
LGlmciA7x+Wz/cv509C1xNbQts+x6ta+zrsNCg0Kc3RtICMwMzAwaCxpbXIgO8q5xNxEU1BJTlTW
0LbPDQoNCnN0bSAjMjgwaCxzcCA7s/XKvLuvttHVu9a41etTUM6qMjgwaA0KDQpIT1NUQUNLIDu8
7LLp1ve7+srHt/HH5UhJTlSx6ta+DQoNCnN0bSAjMGFoLGhwaWMgO9bDSElOVM67o6zP8tb3u/q3
osvNDQoNCjtISU5U09DQp9DFusWjrLjm1qq12tK7uPbK/dLR17yxuL7N0PcNCg0KcnNieCBpbnRt
IDu/qsb01tC2zw0KDQp3YWl0OiBiIHdhaXQgO9b3s8zQ8qOotMu0ps6qy8DRrbu3o6kNCg0KaHBp
OiBzdG0gIzBhaCxocGljIDu1sdb3u/rIoc3qyv2689bDRFNQSU5UDQoNCqO7zrujrL34yOtEU1BJ
TlTW0LbPt/7O8bPM0PINCg0KcmV0ZSA7RFNQz/LW97v6t6LLzU5JTlTO1crWDQoNCqO70MW6xaOs
zajWqs/C0ru49sr90tHXvLG4usMNCg0KLmVuZCANCg0KDQoNCg0KDQoNCg==

------=_NextPart_001_0002_01C655C0.3FBB5040
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: 8bit

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>广东电子商贸网技术频道——www.guangdongdz.com</title>
<style type="text/css"> <!-- .main{font-size:12px}.main1{font-size:14.8px}.main2{font-size:16px}.main3{font-size:7px}.main4{font-size:10px}A:link{text-decoration:none;color:0000ff}A:visited{text-decoration:none}
 color:000000}A:active{text-decoration:none;color:ff0000}A:hover{text-decoration:underline;color:aa0000}.downbor{border-color:black black #FFD0A2;border-style:solid;border-top-width:0px;border-right-width:0px}
 border-bottom-width:1px;border-left-width:0px}.downbor1{border-color:black black #FFFFFF;border-style:solid;border-top-width:0px;border-right-width:0px;border-bottom-width:2px;border-left-width:0px}.mar{margin-bottom:10px
 .mar1{margin-bottom:10px;margin-top:10px}.mar2{margin-bottom:0px;margin-top:0px
 --> </style>
<base target="_top">
</head>

<body oncontextmenu=self.event.returnValue=false onselectstart="return false" onkeydown="if(event.keyCode==78&amp;&amp;event.ctrlKey)return false;" bgColor=#ffffff  topmargin="8" leftmargin="17">
<span class="main1">

   
          
<div align="center"><center>            
            
                                                                                                  
</center></div>                                                                                                  
                                                                                                  
<p align="left"> </p>                                                                                                  
<div align="center"><center>                                                                                                  
                                                                                                  
<table border="0" cellPadding="0" cellSpacing="0" width="794" height="82">                                                                                                  
<tbody>                                                                                                  
  <tr>                                                                                                  
    <td align="middle" vAlign="top" width="116" height="64" bgcolor="#FDFEF1"><p align="left"><font                                                                                                  
    color="#800000"><br>                                                                                                  
      </font>                                                                                             
<span class="main1">                                                                                             
                                                                                             
                                
<br>                         
<br>                         
                                                                                              
  </span>                                                                                               
      <font                                                                                                 
    color="#800000"><table                                                                                                
    border="0" cellPadding="0" cellSpacing="0" width="100%">                                                                                                
<tbody>                                                                                                
      <tr>                                                                                                
        <td><span class="main1">作者:天津大学&nbsp; 邵 蔚&nbsp;  
          吴开杰&nbsp; 李 刚&nbsp;&nbsp;&nbsp;   
          来源:《单片机与嵌入式系统应用》</span></span> </td>                                           
      </tr>                                           
      <tr>                                           
        <td><p align="center"><span class="main1"><br>                                           
          <b><font color="#0000A0" lang="ZH-CN" face="宋体"><span style="mso-bidi-font-size: 12.0pt; font-family: 宋体; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" class="main1">'54x系列DSP与计算机并口通信的设计方案</span></font></b></span></p>                                       
          <span class="main1">                                        
        <hr align="center" SIZE="1" width="520">                                        
        <p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;                                        
mso-hansi-font-family:&quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp; <b>摘要:</b></span>数字信号微处理器与计算机之间的数据通信越来越受到重视。本文主要介绍TI公司'54x系列DSP通过主接口(HPI)与计算机并口进行通信的简易设计方案。该方案以简单的电路设计实现了稳定的数据传输,并具有较高的通信速度。</p>                                               
        <p class="MsoNormal">                   
        <span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;                                                 
mso-hansi-font-family:&quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp; <b>关键词:</b></span>DSP  
        TMS320VC5410 主机接口(HPI)</p>                                                
        <p style="text-indent: 30">数字信号微处理器(DSP)是近十几年来兴起的一项新技术。DSP以其速率快、功能强的特点,逐渐进入传统单片机所占据的工业和消费领域。TMS320C54x(简称为'54x)是德州仪器公司(TI  
        Inc.)继TMS320C1x、TMS320C2x、TMS320C5x之后推出的新一代高性能DSP芯片。该系列芯片具有低功耗、高性能、性能价格比高等优点,广泛应用于图像处理、语音处理、仪器仪表、通信、多媒体及军事等领域。</p> 
        <p style="text-indent: 30">在众多以PC机为终端的数据采集和控制系统中,由于通信协议的严格性导致外围的微处理器除需完成数据采集、控制等工作外,还需要担负起与PC主机通信、传递数据等任务。这种负担在高速的数据采集中显得就更为突出。解决的方法多数是增加专用于主机通信的器件。'54x由于集成了众多强大的功能,不仅可以实现高速数据采集和控制,几乎还可以完成不增加负担地与主机进行通信。<b><br> 
        <img border="0" src="cid:000101c6557d$317933dc$_CDOSYS2.0" hspace="15" vspace="10" width="530" height="316"><br>
        1 '54x的主要特点</b></p>
        <p style="text-indent: 30">以高速、低功耗为特征的'54x系列采用了先进的改进型哈佛结构,具有分离的数据总线和程序总线,片内集成了ROM、RAM和多个外设,如通用I/O口、定时器、时钟发生器、软件可编程等待状态发生器、可编程块切换逻辑、串行口、直接存储器存取控制器(DMA)和与外部处理器通信用的主机接口(HPI,Host  
        Port Interface)。</p> 
        <p style="text-indent: 0"><b>2 '54x的主机接口(HPI)</b></p> 
        <p style="text-indent: 30">'54x中的主机接口(HPI)主要有三种:标准8位HPI-8接口、增强型8位HPI-8接口和16位HPI-16接口。其中'542~'549内含标准型HPI-8,'5402、'5410内含增强型HPI-8,'5410以上为HPI-16;而'5409、'5416的HPI可以由用户设置为增强型HPI-8或HPI-16、增强型比标准型更优越之处主要在于,增强型允许主机访问DSP内部的所有片内RAM,而标准型只能访问RAM区中指定的2K字。</p> 
        <p style="text-indent: 30">以TMS320VC5410(简称为'5410)包含的增强型HPI-8接口为例,它与外部主机或微处理器的连接如图1所示,其具有单独的8根数据线HD0~HD7和10根控制线。控制信号的时序逻辑如图2所示。主机主动通过HPI口访问DSP,除了对主机发中断(通过置HPIC寄存器的HINT位,可以使HINT线有效)或清除主机发来的中断(通过清HPIC寄存器的DSPINT标志)需要DSP干涉外,'5410的CPU几乎不用进行其他操作,片内的DMA通道会自动辅助完成RAM区和HPI数据寄存器的数据传输。主机由HCNTL0/1线来确定选择HPI的某个控制寄存器,如表1所列。通过对这4个寄存器的访问,就可以在所设安全机制的允许范围下读/写DSP的所有或部分片内RAM。<br> 
        <br> 
        <b>表1 HCNTL0/1的选择功能描述</b></p> 
        <table border="1" width="100%" bordercolorlight="#000000" bordercolordark="#FFFFFF"> 
          <tr class="main"> 
            <td width="18%" align="center">HCNTL1</td>
            <td width="20%" align="center">HCNTL0</td>
            <td width="62%" align="center">描&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 述</td>
          </tr>
          <tr class="main">
            <td width="18%" align="center">0</td>
            <td width="20%" align="center">0</td>
            <td width="62%">主机读/写HPI控制寄存器--HPIC</td>
          </tr>
          <tr class="main">
            <td width="18%" align="center">0</td>
            <td width="20%" align="center">1</td>
            <td width="62%">主机以地址自动增的模式读/写HPI数据锁存器--HPID。若为读操作,则HPI地址寄存器HPIA每次自动读后增一单元;若为写操作,则HPIA自动写增1</td>
          </tr>
          <tr class="main">
            <td width="18%" align="center">1</td>
            <td width="20%" align="center">0</td>
            <td width="62%">主机读/写HPI地址寄存器--HPIA,该地址指向'54x的片内RAM地址</td>
          </tr>
          <tr class="main">
            <td width="18%" align="center">1</td>
            <td width="20%" align="center">1</td>
            <td width="62%">主机读/写HPI数据锁顾器--HPID,HPIA不变</td>
          </tr>
        </table>
        <p style="text-indent: 30">由于DSP最小的存储单位是字(16位),因此对于HPI-8,每个的传递必须要有2个传递周期才能完成。HBLL信号用于区分传递的字节是当前字的第一字节还是第二字节。通过设置HPIC寄存器的BOB位,可以决定第一字节是这个字的高字节还是低字节。</p>
        <p style="text-indent: 30">通过HPI实现程序下载属于'5410程序加载的五种途径之一。在需要与主机连接的应用设计中,采用HPI程序加载方式可以使电路设计简化,省去外部并行或串行的ROM或FLASH程序存储器。</p>
        <p style="text-indent: 0"><b>3 增强型HPI-8与主机并口的连接</b></p> 
        <p style="text-indent: 30">'5410具有C54x系列的大部分特点,它包括3个多通道缓冲串口(McBSP)六通道DMA、8位增强型主机接口HPI-8、增强型外部并行接口(XIO2)、16K字的片内ROM、56K字的片内RAM等,可以说是一个功能强大的微处理器。</p> 
        <p style="text-indent: 30">在实现DSP与计算机主机的并口通信时,将主机并口的工作模式设置在扩展功能(ECP)模式下,在通信速率要求不高的场合,可以将其设置为PS/2模式。PS/2模式是在SPP基础上扩展的双向传输模式,以字节为单位读/写数据。<br> 
        <img border="0" src="cid:000201c6557d$317933dc$_CDOSYS2.0" hspace="20" vspace="10" width="520" height="320"><br>
          </span>&nbsp;&nbsp;&nbsp;                                       
          <span class="main1">                                        
        在一些DSP与主机并口通信的设计中,采用了CPLD来产生接口时序,这种方式除了加大电路成本外,还给设计增加了复杂度。事实上,利用几个简单的逻辑门就可以实现DSP与主机的并口通信。</p> 
        <p style="text-indent: 30">对于DB25的主机并口线,Data0~Data7作为双作为HDS1控制信号,AudoFd、SelechIn分别作为HCNTL0/1信号。Init作为HR/W控制信号。HBIL信号由Strobe信号触发J-K触发器翻转。考虑到HPI的程序加载功能,利用J-K触发器将SelectIn和AutoFd信号逻辑组合得到对DSP的RESET复位控制。另外,'5410的I/O口线为3.3V  
        CMOS电压,而并口则通常为5 V TTL电压。因此,为达到电平匹配,在两级之间增加了电压转换的缓冲器SN74LVC245。具体电路设计如图5所示。</p> 
        <p style="text-indent: 30">HCNTL0/1的状态变化规则如图4所示。可以看出,只有当HCNTL1为1,HCNTL0由0变1时,才会触发复位状态的翻转。所以,当需要从寄存器HPIA切换到非增HPID时,为避免触发复位状态翻转,HCNTL1/HCNTL0应以10-00-01-10的方式进行转换。</p> 
        <p style="text-indent: 0"><b>4 程序设计</b></p> 
        <p style="text-indent: 30">4.1 主机程序</p> 
        <p style="text-indent: 30">主机程序主要完成HPI寄存器的选择、时序的构建和数据读/写等。限于篇幅,此处只列举主机读DSP片内RAM存储区的时序构建及其与DSP间的通信握手。其中,p_DATA、p_STATUS、p_CONTROL分别代表LPT1的数据寄存器、状态寄存器和控制寄存器。ECP扩展控制寄存器ECR的bit7~5设置为'001'。HPI的HPIC寄存器BOB位设置为'0'(第一字节为高字节)。</p> 
        <p style="text-indent: 30">/*读/写HPI寄存器,读/写的'字'存放在*data和*(data+),</p> 
        <p style="text-indent: 30">r_w为0时代表写,为1时代表读。*/</p> 
        <p style="text-indent: 30">void HPIregRW(char*reg,BYTE*data,BYTEr_w)</p> 
        <p style="text-indent: 30">{</p> 
        <p style="text-indent: 30">BYTE test;</p> 
        <p style="text-indent: 30">BYTE CRW=0x00|(r_w&lt;&lt;5);</p> 
        <p style="text-indent: 30">int i_HBIL=0;</p> 
        <p style="text-indent: 30">/*切换选择HPIC、HPIA、HPID_I、HPID_n寄存器之一*/</p> 
        <p style="text-indent: 30">if(strcmp(reg,&quot;HPIC&quot;==0)</p> 
        <p style="text-indent: 30">{</p> 
        <p style="text-indent: 30">ChangeCONTROL(0x0b|CRW);</p> 
        <p style="text-indent: 30">//ChangeCONTROL(BYTE bValue)<br>
        <img border="0" src="cid:000301c6557d$317933dc$_CDOSYS2.0" hspace="10" vspace="10" width="543" height="392"><br>
          </span>&nbsp;&nbsp;&nbsp;                                       
          <span class="main1">                                        
        }</p> 
        <p style="text-indent: 30">else if(strcmp(reg,&quot;HPIA&quot;= =0)</p> 
        <p style="text-indent: 30">ChangeCONTROL(0x03|CRW);</p> 
        <p style="text-indent: 30">else if(strcmp(reg,&quot;HPID_I&quot;= =0)//采用自增地址主机写</p> 
        <p style="text-indent: 30">ChangeCONTROL(0x09|CRW);</p> 
        <p style="text-indent: 30">else if(strcmp(reg,&quot;HPID_n&quot;= =0) //主机写</p> 
        <p style="text-indent: 30">ChangeCONTROL(0x01|CRW);</p> 
        <p style="text-indent: 30">else</p> 
        <p style="text-indent: 30">{</p> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -