阅读:684回复:1
请教有关s5933的一些问题(新手上路)
我要做的东西是:接收探测器的输出数据,5ms内370个16位数据。想用S5933来进行控制(BUS MASTERING)。
这就应该在探测器开始输出信号时,由ADD_ON一侧启动DMA传输。 但是有些问题不明白: 我找到一份资料: DMA传输的实现步骤: 1.通过NVBUILD软件设置DMA传输的控制方式为主机或本地逻辑,以下假设为主机控制。 问题1:如果用Add_on启动一定要用NV_RAM吗?能不能只使AMWEN、AMREN有效来启动DMA? 2.设置总线控制寄存器:MWAR、MWTC或MRAR、MRTC。 3.启动DMA传输。 由本地逻辑控制的DMA传输步骤,只需将控制方式改为本地逻辑控制,任然后由本地逻辑来设置相应的寄存器。 问题2:程序启动时,要开辟一块内存来存数据,但是本地逻辑不知道MWAR的地址啊 问题3:由问题2,我想能不能在程序启动时由CPU初始化(步骤1、2),然后由ADD_ON启动(本地逻辑只进行步骤3)? 问题4:传完数据后要通知CPU进行中断服务,但是由ADD_ON启动时,s5933是向ADD_ON端口提供中断信号的。这如何是好? |
|
沙发#
发布于:2003-04-17 12:07
答2、3、4:你可以采用以下方法:add-on方的采集数据就绪后放到本地缓冲(例如双口RAM),然后产生INTA#中断PCI方;PCI方初始化时,建立缓冲,进入中断处理程序后,PCI方发起DMA或者以Pass-thru方式,从add-on缓冲读数。 (请加点分)
|
|
|