打造国内最大的IC交易平台
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
外设端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

     ;************************

    

    

    

    

    

 
 
客服热线
0755-26000950 0755-26007355