新闻中心

EEPW首页>EDA/PCB>设计应用> 基于FPGA+DSP+ARM的数据传送总线变换器

基于FPGA+DSP+ARM的数据传送总线变换器

作者: 时间:2010-09-02 来源:网络 收藏

  4 系统软件设计

本文引用地址://m.amcfsurvey.com/article/191587.htm

  4.1 嵌入式操作系统

  在该总线变换器中,实时数据压缩的任务由完成。S3C4510B完成与PC之间的以太网通信,其软件实现所要求的实时性、可靠性和复杂性使得选择一种带有TCP/IP协议包的嵌入式实时操作系统成为必需,而μCLinux是一个带有完整的TCP/IP协议的操作系统,在μCLinux中加入实时RT-Linux模块以满足对嵌入式操作系统的实时性要求。

  4.2 驱动和应用程序的开发

  基于μCLinux操作系统的硬件驱动和应用程序的开发是在交叉编译环境中进行的,首先在PC机上开发,然后移植到目标机上进行调试并最终固化到目标机上。所开发的硬件驱动有以太网卡控制器驱动、LCD驱动、HPI驱动等驱动程序。系统软件结构如图4所示。


  在μClinux操作系统上运行三个任务:读取压缩数据、通过以太网发送数据、接收和执行来自远端PC机的命令。其中读取压缩数据任务对实时性有要求,它通过中断处理程序来实现,而其他的两个任务则通过用户进程来实现。以太网发送数据的任务和读取压缩数据的任务共享一个缓冲区,通过ioctl函数在其间传递缓冲区双向链表的地址。所以需要为数据处理模块上的通信接口HPI注册一个驱动程序,注册驱动程序的函数是:

  result=register_chrdev(HPI_MAJOR,hpi,hpi_fops)

  驱动程序的主要结构如下:

  struct file_operations hpi_fops=

  {

  owner: THIS MODULE,

  open: hpi_open,

  read: hpi_read,

  write: hpi_write,

  ioctl: hpi_ioctl,

  mmap:hpi_mmap,

  release:hpi_release,

  };

  HPI驱动程序编写完成后,将驱动程序源代码置于../linux-2.4.x/driver/char目录下,同时修改同级目录下的Makefile,在../linux-2.4.x/driver/char/Makefile中加入Obj_y +=hpi.o

  同时,为了能够在?滋Clinux启动时自动初始化此字符设备,还需要修改 ../linux-2.4.x/driver/char/men.c文件,在其中加入:

  (1)新添加的字符驱动程序初始化函数声明:extern void hpi_init(void);

  (2)在字符设备统一初始化函数int _init chr_dev_init(void)中调用新设备的初始化函数,需要在int _init chr_dev_init(void)中加入语句:hpi_init();

  在函数int _init chr_dev_init(void)中,字符设备的初始化函数将被统一调用,并完成字符驱动file_operations数据结构的注册,初始化之后就可以使用HPI字符设备了。

  本文所设计总线变换器,不仅解决了由于传输距离远而引起的信号畸变问题,而且满足了信息传递的实时性要求,同时具有网关功能和嵌入式Web功能,能确保系统安全接入Internet。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭