新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 频谱仪多种内核间通信机制的方案设计

频谱仪多种内核间通信机制的方案设计

作者:时间:2011-11-15来源:网络收藏

1.2 SPI接口电路设计
SPI接口是一种串行接口,它由4根信号线组成,其中SPCK、MOSI、MISO为复用,ARM通过片选信号NPCS来选择与不同的从器件。本课题中ARM通过SPI总线分别与中频板FPGA、源扫板FPGA。ARM与FPGA的硬件连接如图3所示。ARM为主机模式,其SPI接口的SPCK、MIS O、MOSI分别与从机FPGA的SCLK、MOSI、MISO连接。ARM共有4根片选线。这里采用NPCS1选择中频板FPGA,NPCS2选择源扫板FPGA。

本文引用地址:http://www.eepw.com.cn/article/155536.htm

c.jpg



2 多核间的通信
2.1 ARM与DSP的通信
ARM在Linux系统启动后,会先进行一系列的初始化,包括对HPI、SPI等通信接口的初始化以及重启DSP,实现时序上的同步。ARM在初始化完成后,会向DSP发送握手信号,即通过PB9向DSP的GP11口写入数据,表示ARM完成初始化,可以接收DSP的发送数据。而DSP完成数据处理以后,会等待ARM的握手信号,即不断访问GP11口是否收到数据。当DSP收到握手信号之后,会向GP12口写1以中断ARM主机的其他工作,以便ARM来读取DSP已处理好的数据。ARM收到中断信号以后,通过设置HCNTL0、HCNTL1对HPIC操作来清除中断,然后写HPIA以告诉DSP从什么位置开始进行自增读。然后DSP将数据从DMA传送到HPID中,ARM通过读HPID来获得数据。由于ARM与DSP的HPI接口是16位数据传输,所以要软件实现将两次读取的16位数据合并成32位,然后传给上层应用程序。ARM读取完数据后,向DSP的指定地址写入0xffffffff,通知DSP渎取成功,准备下次数据传输。
ARM在接收到上层应用程序下发的命令后,通过对命令的解析、计算,得到各种参数.然后通过HPI下发给DSP。其流程是:首先通过HCNT L0、HCNTL1写HPIC寄存器,配置读写模式。然后写了HPIA寄存器,设置写入DSP的物理地址。通过连续写HPID寄存器来发送控制参数,最后写入0x5555aaaa,表示发送完毕。
2.2 ARM与FPGA的通信
ARM集成了SPI接口,通过SPI与FPGA进行数据通信。SPI总线的“单主机多从机”模式正适合本课题中ARM同时与中频板FPGA与源扫版FPG A的通信。ARM启动Linux系统后,先对SPI接口进行初始化,包括对PIO控制器编程,将SPI引脚分配给外设,配置PMC(电源管理控制器)以使能SPI时钟以及将ARM配置为主机模式。当上层软件下发命令后,ARM先将接收到的命令字进行解析,解析命令得到各种参数:经过计算后,通过SPI接口的片选NPCS来选择中频板FPGA或源扫板FPGA来下发参数。
由于中频板FPGA和源扫板FPGA的功能各异,接收的参数也不尽相同,所以制定了不同的数据帧格式及发送规则。ARM向中频板FPGA每帧数据传送16位,传输频率为0.36 MHz。发送顺序为:路由码1、数据帧1、路由码2、数据帧2、结束码。ARM向源扫板FPGA每帧数据传送16位,传输频率为0.36 MHz。发送参数前都要先发送一个存储这个参数的虚拟地址,然后发送参数,顺序为:虚拟地址1、参数1、虚拟地址2、参数2、结束码。

3 嵌入式Linux设备驱动简介
一套完整设备的软件系统开发可分为:应用程序、库、操作系统()、驱动程序。Linux软件系统的层次关系如图4所示。驱动程序的作用存于连接软、硬件,即通过驱动程序来完成对硬件设备的操作。在Linux系统中,应用程序运行于“用户空间”,并不能直接操作硬件,这可以避免应用程序的错误使得整个系统崩溃。而驱动程序运行于“空间”,它是系统信任的一部分。所以应用程序要对硬件操作,就要首先使用库提供的系统调用来进入内核。内核匹配后,调用相应的驱动程序函数,从而完成对硬件的操作。

d.jpg



评论


相关推荐

技术专区

关闭