| 外设端SCSI-2接口芯片AMD53CF94的应用 |
| 类别:接口电路 |
|         作者:山东威海北洋电气集团公司      徐发荣 来源:《国外电子元器件》      摘要:AMD53CF94是AMD公司生产的增强型SCSI-2控制器,它支持Fast      SCSI-2控制协议,广泛应用于磁盘驱动器、CD-ROM、DVD、HDD硬盘驱动器、扫描仪和主机适配器等各个领域。文中给出了AMD53CF94的一个具体接口连接电路,并给出了该接口电路SCSI端口初始化、接收PC机数据和向PC机发送数据的软件程序框图及详细的程序清单。                关键词:接口电路      SCSI 控制器 数据传输 AMD53CF94      目前,在计算机及其外设中,SCSI标准接口应用越来越广泛。其范围遍布了从磁盘驱动器、CD-ROM、DVD、HDD(硬盘驱动器)、Scaner(扫描仪)到主机适配器等各个领域。由于其自身所具有优点,近几年SCSI标准及其应用得到了迅速的发展。它允许串接多个外设,传输速度也从SCSI-1的5MB/s发展到Ultra2(Side)的80MB/s。但在目前阶段,该接口最成熟且最广泛的应用还是SCSI-2标准,SCSI-2标准的传输速率为10MB/s(8bit)和20MB/s(16bit),已能满足大部分外设的数据传输需要。本文介绍一种利用AMD53CF94      SCSI-2控制器来实现与外设进行SCSI-2标准接口的软件、硬件设计方法。      1 硬件设计      AMD53CF94是AMD公司的产品,属于增强型SCSI-2控制器。支持Fast      SCSI-2控制协议。其同步模式传输速率可达10Mbytes/s,在异步模式时,其传输速率达5Mbytes/s。它具有24位传输计数器(即最大块传送字节数达16Mbytes),采用3总线设计方案(16位DMA接口、8位CPU接口总线和8位SCSI数据接口)。AMD53CF94控制器直接支持选择、再选择、信息传输和失连命令,同时还带有省电模式(减少功率消耗)。它内含一个可编程抗干扰电路,可以消除宽度达35ns的干扰脉冲,从而极大地提高了系统的可靠性。该芯片采用84脚PLCC封装形式。      AMD53CF94在系统中有多种接法,可以根据具体的应用需求选择最佳的连接方式。CPU对AMD53CF94的控制具有查询和中断两种方式。本文介绍的应用采用中断工作方式。具体的硬件电路如图1所示,图中:命令和信息利用CPU接口进行传输和执行,数据利用DMA通道进行传输,电路中的89C51单片机完全可以满足高速数据传输的要求。      2 软件设计      AMD53CF94的接口软件程序包括SCSI端口初始化、接收PC机数据和向PC机发送数据三部分。      2.1 SCSI端口初始化      图2所示是AMD53CF94接口软件中的SCSI端初始化程序框图。具体的程序清单如下:      ;*** SCSI INTERFACE INITIALIZATION      SUBROUTINE***      PROC SCSIINI      SCSIINI:MOV A,#02H ;CMDREG(Command      Register)为命令寄存器单元      MOV DPTR,#CMDREG;02为Reset Chip命令      MOVX @DPTR,A;复位所有片内功能,返回失连状态,产生硬复位条件      MOV A,#00H ;00为Nop命令      MOVX @DPTR,A      ;空操作,释放命令寄存器      MVV A,#01H ;01为Flush FIFO命令      MOVX @DPTR,A ;初始化数据FIFO为空      MOV A,#00H ;STCREGL(Start Transfer      Count Register Low)      MOV DPTR,#STCREGL ;清除传输置数寄存器低8位      MOVX @DPTR,A      MOV DPTR,#STCREGM ;STCREGM(Start      Transfer Count Register Middle)      MOVX @DPTR,A      ;清除传输置数寄存器中间8位      MOV A,#07H ;SDIDREG(SCSI Destination ID      Register)      MOV DPTR,#SDIDREG ;指定SCSI设备将要选择的SCSI设备的总线ID编码值      MOVX @DPTR,A ;此处为Target模式,指定Initiator      ID为7      MOV DPTR,#STIMREG ;STIMREG(SCSI Timeout      Register)      MOV A,#98H ;SCSI超时寄存器单元,SCSI推荐标准值为250ms      MOVX @DPTR,A ;设置SCSI选择或再选超时为250ms      MOV DPTR,#STPREG ;STPREG(Synchronous      Transfer Period Register)      MOV A,#04H      ;同步传输周期寄存器单元      MOVX @DPTR,A ;设置同步传输周期为100ns,即最大传输速率为10M字节/秒      MOV DPTR,#SOFREG ;SOFREG(Synchronous      Offset Register)      MOV A,#00H ;同步偏移寄存器单元      MOVX @DPTR,A ;00表示异步传输      MOV DPTR,#TARGETID;读取Targer ID      跳线设置      MOVX A,@DPTR      ANL A,#07H      ORL A,#10H ;允许53C94报靠复位中断和奇偶错误      MOV DPTR,#CTNLREG1 ;CTLREG1(Control      Register One)      MOVX @DPTR,A ;设置控制寄存器1      MOV DPTR,#CLKFREG ;CLKFREG(Clock Factor      Register)      MOV A,#00H ;时钟因子寄存器单元,为专门产生内部时序而设置      MOVX @DPTR,A ;此处应用40M外时钟,对应为00H      MOV DPTR,#FTMREG ;FTMREG(Forced Test      Mode Register)      MOVX @DPTR,A ;清除测试寄存器单元      MOV DPTR,#CTNLREG2 ;CTLREG2(Control      Register Two)      MOV A,#6CH      MOVX @DPTR,A ;设置控制寄存器2      MOV DPTR,#CTLREG3 ;CTLREG3(Control      Register Three)      MOV A,#18H      MOVX @DPTR,A ;设置控制寄存器3      MOV DPTR,#CTLREG4 ;CTLREG4(Control      Register Four)      MOV A,#20H      MOVX @DPTR,A ;设置控制寄存器4      MOV DPTR,#DALREG ;DALREG(Data Alignment      Register)      MOV A,#00H      MOVX @DPTR,A ;清除数据校准寄存器      MOV DPTR,#STCREGH ;STCREGH(Start      Transfer Count Register High)      MOVX @DPTR,A ;清除传输置数寄存器高8位      MOV A,#44H ;44H为Enable Selection命令      MOV DPTR,#CMDREG      MOVX @DPTR,A;发送响应总线初始选择命令      SETB EX1 ;开SCSI中断      RET      ;************************      2.2 接收PC机数据      图3所示是利用AMD53CF94接口电路接收PC机数据的程序框图。其具体的程序清单如下:      ***** SCSI INTERFACE RECEIPT SUBROUTINE******      PROC SCSIRXD      SCSIRXD:      CALL SCSIINI      MOV DPTR,#CMDREG      MOV A,#2AH ;2AH为Receive Data命令      MOVX @DPTR,A ;接收数据后产生中断      RET      ;*********************      ;***** SCSI RECEIPT INTERRUPT      SUBROUTINE*****      RXDINT:      MOV DPTR,#FIFOREG ;接收数据在FIFO中      MOVX A,@DPTR ;读取FIFO寄存器单元      MOV DATARXD,A      ;把数据放入数据接收单元DATARXD      MOV A,#00H ;00H代表Good状态      MOVX @DPTE,A ;00H代表Command Complete消息      MOVX @DPTR,A ;把状态和消息送入FIFO再发送出去      MOV DPTR,#CMDREG      MOV A,#24H ;24H为Terminate Sequence命令      MOVX @DPTR,A      ;发送一个状态字节和一个消息字节失连      ;适用于完成命令后失连      RETI      ;**********************      2.3 向PC发送数据:      利用AMD53CF94接口电路向PC机发送数据的程序图如图4所示。以下是其具体的程序清单:      ;*** SCSI INTERFACE TRANSMIT SUBROUTINE***      PROC SCSITXD      SCSITXD:      CALL SCSIINI      MOV DPTR,#FIFOREG      ;发送数据在发判断数据单元DATATXD放入FIFO中      MOV A,DATATXD      MOVX @DPTR,A ;发送数据放入FIFO中      MOV DPTR,#CMDREG      MOV A,#22H ;22H为Receive Data命令      MOVX @DPTR,A ;发送数据后产生中断      RET      ;*************************      ;*****SCSI TRANSMIT INTERRUPT      SUBROUTINE*****      TXDINT:      MOV DPTR,#FIFOREG ;FIFO寄存器单元      MOV A,#00H ;00H代表Good状态      MOVX @DPTR,A ;00H代表Command Complete消息      MOVX @DPTR,A ;把状态和消息送入FIFO再发送出去      MOV DPTR,#CMDREG      MOV A,#24H ;24H为Terminate Sequence命令      MOVX @DPTR,A      ;发送一个状态字节和一个消息字节失连      ;适用于完成命令后失连      RETI      ;************************                          |
- 基于PDIUSBD..
- 2007-11-5
- 基于μC/OS-I..
- 2007-11-1
- LW6-220断路..
- 2007-10-27
- 环氧线路板废料处理..
- 2007-8-30
- PCI设备Wind..
- 2007-8-9
- TMS320C80..
- 2007-8-7
- PSD8xxF的在..
- 2007-8-9
- 8x930Ax/H..
- 2007-8-9
- 机械传动间隙的实时..
- 2007-8-9
- 智能寻位加工技术中..
- 2007-8-9
- 增强型并行口EPP..
- 2007-8-9
- 交直流数据采集系统..
- 2007-8-9
- USB在数据采集系..
- 2007-8-9
- Bt8510在V5..
- 2007-8-9
- Windows98..
- 2007-8-9
- RS-232至RS..
- 2007-8-9
- 电流/电压转换芯片..
- 2007-8-9
- 20位Σ-Δ立体声..
- 2007-8-9
- 用增强并口EPP协..
- 2007-8-9
- FX909在无线高..
- 2007-7-29



