0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FAS446处理器的软件设计和应用实例分析

电子设计 来源:国外电子元器件 作者:王忠宝,李变侠, 2020-05-29 08:01 次阅读

FAS466是Qlogic公司生产的一款高性能SCSI处理器,它可提供Fast40 SCSI同步传输速率,其高度集成的SCSI核心支持先进的SCAM一层和二层协议,而内嵌的微控制器则使用户可以通过灵活多变的编程方式协调SCSI队列,简明清晰的外部接口使得硬件设计更为简单,尤其适合于开发专用SCSI存储系统。硬件接口的设计此前已有文章介绍,而软件设计是基于FAS466系统的开发难点,目前此类文章尚不多见。本文通过对FAS466处理器内部结构和操作原理的深入分析,给出了基于FAS466处理器系统的通用软件解决方案和应用实例。

1、FAS466的结构和原理

FAS466的内部结构如图1所示,该器件由SCSI控制器、微控制器、FIFO以及连接它们的总线和信号线组成,并通过它们为外部提供微处理器接口、DMA接口和SCSI总线接口。

FAS466微处理器接口可以连接多种微处理器或DSP;而DMA接口则主要与外部DMA控制器连接?组成DMA通道;SCSI总线接口可以连接各种SCSI设备。其中,SCSI控制器与微控制器分别是SCSI协议的执行中心和控制核心。

1.1 SCSI控制器操作原理

SCSI控制器为SCSI协议操作提供了灵活有力的底层硬件支持。它通过32个8位宽的寄存器与外部微处理器作用。SCSI控制器命令集包括中断命令、断开命令、目标器模式命令、启动器模式命令和混合命令。外部微处理器或者FAS466微控制器通过向SCSI控制器命令寄存器中写入代表特定行为的命令代码来实现命令的发送。SCSI控制器将自动执行命令,通过命令中断状态寄存器和命令状态寄存器来反映命令完成的状态信息

基于FAS446处理器的软件设计和应用实例分析

SCSI控制器内部有五个状态阶段:复位状态、断开(空闲)状态、选择和重选允许状态、目标器空闲状态和启动器空闲状态。其状态转换图如图2所示。

(1)复位状态

上电复位后,SCSI控制器处于复位状态,此时SCSI控制器不能驱动任何SCSI总线信号,也不响应任何信号,命令寄存器中的命令被忽略?而且只要FAS466外部复位信号有效,SCSI控制器始终保持在这个状态。在操作过程中,外部微处理器可以通过给SCSI控制器模块的复位位写1(微处理器接口模块复位寄存器1位)使SCSI控制器处于复位状态,写0使SCSI控制器进入空闲状态。

(2) 断开(空闲)状态

当SCSI总线复位信号(RST)有效,且SCSI控制器不处于复位状态或者SCSI控制器与SCSI总线断开时,SCSI控制器进入该状态,此状态不能进行选择和重选操作。

(3)选择和重选允许状态

当断开模式命令允许SCSI控制器响应选择和重选信号时,系统进入此状态,所有参与仲裁使用SCSI总线的命令都必须经过此状态。该状态下,SCSI控制器响应总线发出选择和重选事件。除非进入目标器或启动器空闲状态,或者RST信号有效,否则SCSI控制器将一直保持这个状态。

(4)目标器空闲状态

当SCSI控制器响应总线发起事件或者作为其它SCSI设备重选的结果时,系统进入该状态。此状态下,SCSI控制器将作为目标器连接到SCSI总线,且当BSY(总线忙)信号有效时,系统将驱动SCSI阶段流水线。此状态承认目标器模式和混合命令。除非SCSI控制器目标器断开(总线空闲)或者RST信号有效,否则SCSI控制器将一直保持该状态。

(5)启动器空闲状态

当SCSI控制器响应总线重选事件或者作为其它SCSI设备选择的结果时,系统进入该状态。此状态下,SCSI控制器将作为启动器连接到SCSI总线上,而FAS466并不使BSY信号有效,也不驱动SCSI阶段流水线。SCSI控制器将一直保持这个状态、直到SCSI总线空闲(目标器断开)或者RST信号有效。

SCSI控制器根据当前状态,总线发起事件和命令寄存器中的命令来决定各个状态阶段之间的转换,以实现SCSI总线的仲裁作用,并响应总线发起选择或者重选事件以及进行命令、消息、数据、状态在SCSI总线上的传输等任务。

1.2 FAS466微控制器操作原理

FAS466微控制器是一个小型的Fast结构(40Million指令每秒)RISC微处理器,内部有一个32位的寄存器文件、一个五级深度的堆栈、一个整型ALU和其它特殊功能寄存器。该微控制器的所有指令都是16位宽,除了子程序在两个指令周期(四个时钟周期)内完成外,其它所有指令均在一个指令周期内完成。

FAS466微控制器有三种操作状态:复位状态,空闲状态和运行状态,其状态转换图如图3所示。

系统复位时,微控制器进入复位状态,在空闲和复位状态下,外部微处理器可以通过I/O口操作微控制器的内部寄存器和程序存储器。首先由外部微处理器通过地址指针寄存器加载寄存器地址,然后再通过内部寄存器或者程序存储器的字节操作寄存器来进行操作。外部微处理器则通过设置地址指针寄存器和写程序数据到程序存储器的字节寄存器来将程序下载到微控制器的程序存储器中。下载完毕后,外部微处理器向程序计数器写程序开始执行的地址,然后写01h到控制状态寄存器,这样程序就会从指定的位置开始执行以进入运行状态。微控制器运行过程中,外部微处理器不能打断微控制器或者SCSI控制器,直到收到微控制器产生的一个中断。在运行状态,外部微处理器可以操作邮箱寄存器但不能操作通用功能寄存器。当微控制器已执行完当前指令又没有接收到新的指令时,系统将进入空闲状态以等待新的命令。

2、FAS466的软件解决方案

基于FAS466的系统可通过外部微处理器、FAS466微控制器和SCSI控制器的协调工作来实现系统功能。根据FAS466的内部结构和原理分析,这里给出如图4所示的基于FAS466的系统整体软件设计流程。其软件工作过程如下:

(1)外部微处理器初始化FAS466微控制器和SCSI控制器。(FAS466微控制器初始化包括装载和执行它的固件)。

(2)FAS466微控制器允许SCSI控制器对SCSI总线选择队列的响应。

(3)外部微处理器写一个SCSI操作命令给外部命令/设置邮箱寄存器,然后设置LoadTBS位(外部 TBS寄存器6位),以通知FAS466微控制器有一个未响应请求。

(4)FAS466位控制器检查 LoadTBS位,确认请求。

(5)FAS466禁止SCSI控制器对SCSI总线选择和重选事件的响应。

(6)FAS466微控制器复制外部命令/设置寄存器的内容给存储器,清除LoadTBS位,以允许外部微处理器在等待一个微控制器中断前设置下一个命令。

(7)FAS466微控制器向SCSI控制器发送命令(一般用EXEC #k),SCSI控制器执行命令并在命令完成后产生一个中断。

(8)FAS466微控制器进行中断处理得到SCSI操作的逻辑结果后,产生一个中断给外部微处理器。

(9)外部微处理器根据命令的执行情况进行中断处理。

重复执行(2)~(9)步实现系统的连续操作。

DMA传输是基于FAS466系统的主要工作。在传输数据量确定的情况下,数据量可由编程时写入的块数计数器和块大小寄存器中的值决定。但由于实际应用系统的传输数据量存在不确定性,在设计DMA数据传输程序时,应使SCSI FIFO中始终充满数据,或使DMA控制器或SCSI控制器持续读写SC-SI FIFO,以使SCSI总线上的数据传输不受启动器或目标器的限制。FIFO的空、满门限可由外部微处理器在初始化时通过编程设定。

在传输数据量不确定的情况下,从外部DMA控制器接收数据的子程序如图5所示。SCSI控制器接收到传输命令后即可参与总线仲裁以获得总线的控制权,而外部微处理器则通过设置RDATA位来决定数据传送的方向;在FIFO为空而数据接收未完成时,SCSI控制器进行一次空操作,等待数据。数据量的不确定性可能使得命令完成后FIFO中仍残留数据,此时可以选择暂停传输进入EXFER(表示数据传输过程中出现错误)中断并清空FIFO,也可使其它处理回到传输起点,或者忽略错误直接回到传输起点。数据传送完毕可以选择是否断开与SCSI总线的连接。若选择断开则进入XFERCMPDSC(表示传输完成并与SCSI总线断开)中断,以释放总线的控制权而让其它的命令使用总线,此时,如果想要进行下一次数据传输,必须重新获得总线控制权。若选择不断开总线则进入XFERCMPNODSC(表示传输完成且不与SCSI总线断开)中断,可直接回到数据传输的起点。在所有正常情况下,FAS466都将循环回到数据传输起点,以便进行连续数据传输。

3、应用实例

基于FAS466的视频存储系统可实现数字图像的无压缩海量存储,该系统硬件框图如图6所示。图中,DSP接收到开拍信号后将进行系统初始化,CCD相机可将原始图像信号经过视频采集卡转换成数字图像信号暂存到缓冲器中,并在DMA控制器的作用下,以DMA方式传送给FAS466,数据在FAS466的控制下存入SCSI硬盘组。这样,在硬件基础上,就可通过本文所述的软件解决方案实现视频图像的持续高速存储。

4、软件设计中的注意事项

在设计基于FAS466的系统软件时,应注意以下一些问题:

(1)在FAS466支持的多种处理器中,每个外部微处理器类型都有其相应的代码,因此必须通过芯片配置寄存器选择正确的微处理器模式。如TMS320C5X系列DSP的模式选择值就应为3Fh。

(2)SCSI控制器并不允许命令堆栈,因此,每次只能接收和执行一个命令。

(3)DMA传输时,块大小不能为奇数。

(4)非法写入命令寄存器的命令将引起非法命令中断,并设置非法命令错误位(错误中断状态寄存器第2位),因此,在将其它命令写到命令寄存器前,这个中断必须得到处理。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19352

    浏览量

    230391
  • 寄存器
    +关注

    关注

    31

    文章

    5357

    浏览量

    120741
  • 微处理器
    +关注

    关注

    11

    文章

    2271

    浏览量

    82592
收藏 人收藏

    评论

    相关推荐

    嵌入式实时操作系统uCOS II经典实例:基于STM32处理器

    嵌入式实时操作系统uCOS II经典实例:基于STM32处理器.part1
    发表于 10-18 23:59

    FOC是否支持F401和F411处理器

    嗨, 电机控制软件套件(STM32 PMSM FOC LIBv4.2)是否支持STM32F401,'411和'446处理器?当我尝试它时,它不允许CPU时钟的另一个选项超过168,据我所知,上述
    发表于 02-26 10:56

    32位处理器的开发与8位处理器的开发有哪些明显的不同?

    32位处理器的开发与8位处理器的开发有哪些明显的不同?开发一个32位的嵌入式系统需要哪些工具和环境呢?32位嵌入式系统的开发过程中存在哪些技术难点?有什么方法去应对呢?
    发表于 04-19 08:11

    Cortex-M3处理器是什么

    STM32单片机STM32的核心Cortex-M3处理器是一个标准化的微控制结构,希望思考一下,何为标准化?简言之,Cortex-M3处理器拥有32位CPU,并行总线结构,嵌套中断向量
    发表于 07-16 06:33

    MSM8940处理器有哪些特点

    MSM8940处理器是什么?MSM8940处理器有哪些特点?
    发表于 11-09 07:09

    RK3399处理器与AR9201处理器有哪些不同之处呢

    RK3399处理器与AR9201处理器有哪些不同之处呢?hi3559A处理器与RV1126处理器有哪些不同之处呢?
    发表于 02-21 07:29

    Sitara AM62处理器的资料分享

    和预测性维护),有助于赋予HMI全新的意义,而不是仅限于实现人机交互的界面。AM62处理器能够以低功耗实现边缘器件的分析功能(挂起状态功耗低至7mW且无需特殊考虑散热设计),支持工程师灵活地在尺寸受限
    发表于 11-03 06:11

    Arm Cortex-R82处理器技术参考手册

    使用。 在本手册中,NUM_CORES指的是Cortex®-R82处理器内的核数,指的是核实例数。 集群在Cortex®-R82处理器的上下文中,集群指的是CPU网桥(系统端)(CBS)、共享网桥
    发表于 08-17 08:02

    基于ARM的PC/104处理器模块设计

    提出了一种低成本的PC/104处理器模块的设计。该模块硬件上以ARM处理器为核心实现了PC/104处理模块的基本结构、总线接口,软件上构建了嵌入式Linux操作系统。以ARM
    发表于 08-25 10:36 20次下载

    Intel 64位处理器,Intel 64位处理器结构原理

    Intel 64位处理器,Intel 64位处理器结构原理 现在人们广泛使用的是由32位微处理器构成的计算系统,但是32位的计算和操作系统不能支持
    发表于 03-26 15:07 3325次阅读

    苹果a6处理器怎么样_a6处理器参数

    苹果正式发布iphone5,iphone5采用A6处理器,那么A6处理器怎么样?a6处理器参数是什么呢?a6处理器四核的吗?带着这些疑问,我们来一起了解下A6
    发表于 09-13 14:29 2.6w次阅读

    嵌入式实时操作系统μCOS-Ⅱ经典实例——基于STM32处理器-

    嵌入式实时操作系统μCOS-Ⅱ经典实例——基于STM32处理器-光盘资料
    发表于 01-14 12:04 25次下载

    麒麟9000处理器和高通骁龙875处理器相比如何?

    随着华为mate10系列的发布,华为最后一代旗舰处理器,麒麟9000也就此亮相,大家对于麒麟9000处理器十分的看好。因为麒麟9000处理器在安兔兔的跑分竟然高达72万分,较上一代麒麟990
    的头像 发表于 11-03 11:31 5934次阅读

    “硬件软件化”,32位处理器的开发与8位处理器的开发资料下载

    电子发烧友网为你提供“硬件软件化”,32位处理器的开发与8位处理器的开发资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-22 08:55 6次下载
    “硬件<b class='flag-5'>软件</b>化”,32位<b class='flag-5'>处理器</b>的开发与8位<b class='flag-5'>处理器</b>的开发资料下载

    rk3566处理器属于什么档次?

    rk3566处理器属于什么档次? RK3566处理器是一款由瑞芯微公司推出的高性能处理器,在硬件配置和性能上都表现出了很强大的实力。目前市场上已经有了很多的RK3566处理器,相信大多
    的头像 发表于 08-15 17:25 3.3w次阅读