位置:51电子网 » 技术资料 » 接口电路

基于嵌入式Linux的接口转换卡设计

发布时间:2008/6/3 0:00:00 访问次数:447

今日电子

  接口总线为一群互相连接的设备提供一种有效的通信方式,它是自动测试系统发展的标志,可以说接口总线技术发展的历史就是自动测试系统发展史,接口总线技术发展的水平标志着自动测试发展的水平。本文提出的接口转换方案解决了包括usb总线、gpib总线、网络等几种通用标准接口之间的相互转换。本方案以嵌入式linux操作系统和arm处理器为软硬件平台,在自动测试系统的应用中取得了良好的应用效果。

硬件系统设计

  硬件平台基于arm920t的处理器at91rm9200,该处理器不仅有丰富的片上资源和标准接口,而且有低功耗、低成本、高性能、支持多种主要的嵌入式操作系统等特点,其采用5级整数流水线结构,性能高达200mips,具有标准的armv4存储器管理单元(mmu),内部集成两个usb2.0全速(12mb/s)主机端口、一个usb2.0全速(12mb/s)器件端口和10/100 base-t型以太网接口。该芯片具有多种工作模式,其低功耗待机模式下电流仅3.1ma。

  此方案的硬件系统结构设计如图1所示,主要包括at91rm9200处理器、gpib模块、jtag接口、网络模块、32m sdram、16m flash、串口、usb主从口等部分。其中gpib模块通过cpld器件epm1270逻辑控制gpib接口芯片nat9914实现,网络模块通过外接dm9161实现10/100m自适应网络连接。另外,处理器内置的双主机收发器可连接usb设备。

图1 硬件系统结构

软件系统设计

linux系统的移植

  linux操作系统是可以运行在不同类型计算机上的一种操作系统的“内核”,它提供命令行或者程序与计算机硬件之间接口的软件核心部分。嵌入式linux系统从软件角度分为4个层次,分别为引导加载程序(boot loader)、内核、文件系统和用户程序。

  boot loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

  本方案中linux内核采用linux2.6.16版的kernel。因为本方案需要访问u盘,所以内核中必须加上支持u盘的模块,包括scsi support、scsi disk support、usb mass storage support、vfat(windows95)support、msdos partition tables等。usb器件端口与usb主机通信,可以有三种方式:一些功能最完备结构也最复杂的设备,采用用户定制的内核模块实现在标准usb总线上运行复杂的高级协议,由usb主机上相应的用户驱动程序和应用程序来完成连接;另一些基于linux系统的usb设备则利用usb总线来实现该设备与主机之间的简单点对点串行连接,主机上的应用程序实际上是利用了主操作系统所提供的usb编程接口,但实现的是串行通信协议;最后一种是设备将主计算机作为网关,将usb设备连接到办公局域网或互联网上,从而usb设备构成了一个模拟以太网接口。本方案采用最后一种方式,配置了内核中的usb rndis gadget模块,该模块利用usb接口作为物理媒介,模拟出一个虚构的以太网设备。

  文件系统是用户模式进程与内核模式进程交互的纽带,制作具有特定的功能的文件系统是移植嵌入式系统不可缺少的部分。本方案利用busybox软件工具包构造ext2文件系统,此软件包集成了linux常用命令,可根据需求裁减,极大的方便了嵌入式系统的开发。

应用程序的具体实现

  数据在多个接口之间的转换主要是在用户态的应用程序中实现。此应用程序主要完成的功能是两个usb主口(一个接usb仪器,一个接u盘)、一个usb从口、gpib口和网口之间的数据交换。程序自动检测接口是否处于连接状态:如果是,便监听是否有数据需要传送,并将监听到的数据传给其他处于连接状态的接口。整个应用程序的框架如图2所示。

图2 应用程序整体框架


各个子进程的功能如下:

  子进程1:usb从口的实现主要依靠内核中的usb rndis gadget模块的支持,当usb从口连接至pc时,在pc上模拟以太网接口,用tcp/ip网络协议传输数据;

  子进程2:usb主口1专用于usb设备的usb端口;

  子进程3:usb主口2专用于u盘,将u盘实际连接,当有数据传给u盘时,便在linux操作系统上挂载u盘,并以二进制方式将数据存储到u盘的linux.txt文件中,15s内没有数据传输就会卸载u盘;

  子进程4:网口是以tcp/ip网络协议传输数据。子进程1和子进程4分别实现了网络服务器功能;

  子进程5:在linux操作系统中为gpib口准备一个中断例程,当gpib口有动作时,会首先产生一个中断,应用程序立即跳转中断处理执行程序相关操作。

<
今日电子

  接口总线为一群互相连接的设备提供一种有效的通信方式,它是自动测试系统发展的标志,可以说接口总线技术发展的历史就是自动测试系统发展史,接口总线技术发展的水平标志着自动测试发展的水平。本文提出的接口转换方案解决了包括usb总线、gpib总线、网络等几种通用标准接口之间的相互转换。本方案以嵌入式linux操作系统和arm处理器为软硬件平台,在自动测试系统的应用中取得了良好的应用效果。

硬件系统设计

  硬件平台基于arm920t的处理器at91rm9200,该处理器不仅有丰富的片上资源和标准接口,而且有低功耗、低成本、高性能、支持多种主要的嵌入式操作系统等特点,其采用5级整数流水线结构,性能高达200mips,具有标准的armv4存储器管理单元(mmu),内部集成两个usb2.0全速(12mb/s)主机端口、一个usb2.0全速(12mb/s)器件端口和10/100 base-t型以太网接口。该芯片具有多种工作模式,其低功耗待机模式下电流仅3.1ma。

  此方案的硬件系统结构设计如图1所示,主要包括at91rm9200处理器、gpib模块、jtag接口、网络模块、32m sdram、16m flash、串口、usb主从口等部分。其中gpib模块通过cpld器件epm1270逻辑控制gpib接口芯片nat9914实现,网络模块通过外接dm9161实现10/100m自适应网络连接。另外,处理器内置的双主机收发器可连接usb设备。

图1 硬件系统结构

软件系统设计

linux系统的移植

  linux操作系统是可以运行在不同类型计算机上的一种操作系统的“内核”,它提供命令行或者程序与计算机硬件之间接口的软件核心部分。嵌入式linux系统从软件角度分为4个层次,分别为引导加载程序(boot loader)、内核、文件系统和用户程序。

  boot loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

  本方案中linux内核采用linux2.6.16版的kernel。因为本方案需要访问u盘,所以内核中必须加上支持u盘的模块,包括scsi support、scsi disk support、usb mass storage support、vfat(windows95)support、msdos partition tables等。usb器件端口与usb主机通信,可以有三种方式:一些功能最完备结构也最复杂的设备,采用用户定制的内核模块实现在标准usb总线上运行复杂的高级协议,由usb主机上相应的用户驱动程序和应用程序来完成连接;另一些基于linux系统的usb设备则利用usb总线来实现该设备与主机之间的简单点对点串行连接,主机上的应用程序实际上是利用了主操作系统所提供的usb编程接口,但实现的是串行通信协议;最后一种是设备将主计算机作为网关,将usb设备连接到办公局域网或互联网上,从而usb设备构成了一个模拟以太网接口。本方案采用最后一种方式,配置了内核中的usb rndis gadget模块,该模块利用usb接口作为物理媒介,模拟出一个虚构的以太网设备。

  文件系统是用户模式进程与内核模式进程交互的纽带,制作具有特定的功能的文件系统是移植嵌入式系统不可缺少的部分。本方案利用busybox软件工具包构造ext2文件系统,此软件包集成了linux常用命令,可根据需求裁减,极大的方便了嵌入式系统的开发。

应用程序的具体实现

  数据在多个接口之间的转换主要是在用户态的应用程序中实现。此应用程序主要完成的功能是两个usb主口(一个接usb仪器,一个接u盘)、一个usb从口、gpib口和网口之间的数据交换。程序自动检测接口是否处于连接状态:如果是,便监听是否有数据需要传送,并将监听到的数据传给其他处于连接状态的接口。整个应用程序的框架如图2所示。

图2 应用程序整体框架


各个子进程的功能如下:

  子进程1:usb从口的实现主要依靠内核中的usb rndis gadget模块的支持,当usb从口连接至pc时,在pc上模拟以太网接口,用tcp/ip网络协议传输数据;

  子进程2:usb主口1专用于usb设备的usb端口;

  子进程3:usb主口2专用于u盘,将u盘实际连接,当有数据传给u盘时,便在linux操作系统上挂载u盘,并以二进制方式将数据存储到u盘的linux.txt文件中,15s内没有数据传输就会卸载u盘;

  子进程4:网口是以tcp/ip网络协议传输数据。子进程1和子进程4分别实现了网络服务器功能;

  子进程5:在linux操作系统中为gpib口准备一个中断例程,当gpib口有动作时,会首先产生一个中断,应用程序立即跳转中断处理执行程序相关操作。

<
相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!