某公司承接了一个控制系统的项目,由王工负责系统的方案设计。王工的设计方案如图1所

练习题库2022-08-02  56

问题 某公司承接了一个控制系统的项目,由王工负责系统的方案设计。王工的设计方案如图1所示。该方案是基于VME总线的多机并行处理系统,由主控制模块作为VME总线的主设备,即总线控制器,负责整个系统的控制与管理;3个数据处理模块作为从设备,负责数据处理与计算;1个I/O模块也作为从设备,负责系统与外部接口之间的高速数据通信。同时,为了简化设计,该系统5个模块均采用同一款VME协议芯片,实现内总线和VME总线的连接。该系统中每个模块的相关信息见表1所示。1、王工设计采用共享存储器方式,进行多机之间的通信。VME共享存储器的地址空间映射,分为输出窗口和输入窗口两部分。输出窗口实现处理器本地地址空间到VME总线地址空间的映射,输入窗口实现VME总线地址空间到处理器本地地址空间的映射。 输出窗口空间设置说明:为了每个模块能访问到其他4个模块,在每个模块的处理器本地地址空间中开辟5M空间,映射到VME总线上的5M地址空间。映射关系见表2。输入窗口空间设置说明:每个模块分配1M的VME地址空间,并将这1M空间映射到处理器本地RAM区域中,专门用于VME通信数据缓冲区。映射关系见表3。VME总线驱动中,按照上述方式对寄存器进行设置,实现了VME总线共享存储器工作方式,将对其他模块的操作转化为对处理器本地地址空间访问操作相似的读写操作,并且都采用总线远程写,总线本地读的方式。 数据处理模块1发送消息到数据处理模块2,它们之间采用1M数据缓冲区的第一个32位作为握手标志。则数据处理模块1访问标志区的总线地址为______,数据处理模块2访问标志区的总线地址为______。 I/O模块向主控制模块发送控制命令,它们之间采用1M数据缓冲区偏移0x100处作为命令缓冲区。则I/O模块访问命令区的总线地址为______,主控制模块访问命令区的总线地址为______。2、如表1所示,该系统中采用的处理器有大端和小端两种工作模式。王工设计VME总线上传输的数据全部采用小端方式,那么当处理器通过VME总线发送数据时,需要根据自己的工作模式,对数据进行必要的转换,以符合协议要求。 当I/O模块向主控制模块发送控制命令0xAABBCCDD,那么它写入V=ME总线的实际数据是______,当主控制模块向数据处理模块3和I/O模块发送控制命令0x12345678,那么它写入VME总线的实际数据是______和______。3、为了提高数据通信的性能,在进行大数据量通信时,王工设计采用DMA的方式。DMA通信方式能够满足高速VME设备的需求,也有利于发挥CPU效率。该VME协议芯片有两种DMA工作方式:一种是直接方式(Direct mode),一种是链方式(Linked list mode)。在直接方式下,在每次数据传输前,需要驱动程序对DMA控制寄存器进行设置,然后进行DMA传输,并等待传输完成,或者异常错误。直接方式是一种软件和硬件同步工作方式。在链方式下,驱动程序只需要设置命令包。在通信过程中,硬件根据命令包的内容完成传输,并根据链中的下一个命令包,继续传输,直到所有命令包完成或者异常错误。链方式是一种软件和硬件异步工作的方式。 图2是DMA直接方式的流程图,请补全流程图。

选项

答案

解析 1、0xD020'0000 0x00F0'0000 0xD000'0100 0x00F0'01002、0xAABBCCDD 0x78563412 0x785634123、(1)设置DMA目的地址或(2) (2)设置传输长度或(1) (3)设置DMA传输启动位DMA是否正常终止1、本题考查嵌入式系统中计算机总线、存储、DMA等相关知识及应用。 该系统是基于VME总线的多机并行处理系统,采用共享存储器方式进行多机之间的通信,定义了5MB的VME空间,用于主控制模块等5个模块之间的VME通信。 VME总线的共享存储器方式,通过地址空间映射来实现,分为输出窗口和输入窗口两部分。输出窗口实现处理器本地地址空间到VME总线地址空间的映射,本系统中每个模块配置了相同的5MB的处理器输出窗口地址空间(0xD000' 0000~0xD04F' FFFF),用于映射到VME总线上的5MB地址空间(0x0000' 0000~0x004F' FFFF)。输入窗口实现VME总线地址空间到处理器本地地址空间的映射。本系统中按照模块顺序,每个模块将1M的VME地址空间,映射到处理器本地RAM区域中(0x00F0' 0000~0x00FF' FFFF),专门用于VME通信数据缓冲区。整个系统的映射关系图3所示。由于所有驱动都采用总线远程写方式,数据处理模块1要访问数据处理模块2的通信缓冲区,访问的基地址就是数据处理模块2内存缓存区对应的VME总线地址,即VME总线0x0020' 0000,该地址对应数据处理模块1的本地地址,则为0xD020' 0000。由于所有驱动都采用总线本地读的方式,所以数据处理模块2访问的基地址为本地存储器地址,即0x00F0' 0000。具体的地址空间再由基地址加上指定的偏移即可。 同理,I/O模块要访问主控制模块的通信缓存区,访问的基地址就是主控制模块内存缓存区对应的VME总线地址,即VME总线0x0000' 0000,该地址对应I/O模块的本地地址,则为0xD000' 0000。主控制模块访问的基地址为本地存储器地址,即0x00F0' 0000。具体的地址空间再由基地址加上指定的偏移即可。2、数据在计算机中表示时,有大端和小端两种格式。大端模式是指数据的高位保存在内存的低地址中,而数据的低位保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理,地址由小向大增加,而数据从高位往低位放。小端模式是指数据的高位保存在内存的高地址中,而数据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,与用户的逻辑方法一致。 例如,数字0x12345678在内存中的表示形式为: 1.大端模式:低地址------>高地址0x12|0x34|0x56|0x78 2.小端模式:低地址------>高地址0x78|0x56|0x34|0x12 从软件处理的角度上,不同端模式的处理器进行数据传递时必须要考虑端模式的不同。如进行网络数据传递时,必须要考虑端模式的转换。其中互联网使用的网络字节顺序采用大端模式进行编址,而主机字节顺序则根据处理器的不同而不同,如PowerPC处理器使用大端模式,而Pentium处理器使用小端模式。大端模式处理器的字节序到网络字节序不需要转换;而小端模式处理器的字节序到网络字节必须要进行转换。 在该系统中,VME总线上传输的数据全部采用小端方式,但主控制模块、数据处理模块1、数据处理模块2、数据处理模块3均采用大端方式处理器,因此发送到VME总线上的数据要进行大端到小端模式的转换,而从VME总线上接收的数据,要进行小端到大端模式的转换,但I/O模块由于采用的是小端模式的处理器,则不需要进行转换。3、DMA(Direct Memory Access, 直接内存存取)是所有计算机的重要特色,它允许不同速度的硬件装置来传输数据,而不需要依赖于CPU的大量负载。DMA传输将数据从一个地址空间复制到另外一个地址空间。当CPU初始化这个传输动作,传输过程则由DMA控制器来实行和完成,如图4所示。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。这样的操作并没有让处理器工作拖延,反而可以被重新安排去处理其他的工作。DMA传输对于高效能嵌入式系统是很重要的。 在实现DMA传输时,由DMA控制器直接掌控总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。一个完整的DMA传输过程必须经过DMA请求、DMA响应、DMA传输、DMA结束4个步骤。 (1)DMA请求 CPU对DMA控制器初始化,并提供要传送的数据的起始位置、目的地址和数据长度。并向I/O设备发出启动操作命令,I/O设备提出DMA请求。(2)DMA响应 DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O设备开始DMA传输。 (3)DMA传输 DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O设备进行DMA传输。 在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过程中不需要中央处理器的参与。 (4)DMA结束 当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O设备发出结束信号。当I/O设备收到结束信号后,一方面停止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。最后带着本次操作结果及状态继续执行原来的程序。 由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。
转载请注明原文地址:https://tihaiku.com/congyezige/2424479.html

最新回复(0)