ARM Cortex-A8/A9开发板 | ARM11开发板ARM11开发套件 | ARM9开发板ARM9开发套件 | 飞思卡尔I.MX28I.MX6开发板 |
tiny210/mini210开发板 | mini6410开发板/套餐 | Tiny6410开发板无线套件 | mini2440开发板/套餐 | micro2440开发板带核心板 | 友善开发板配件 模块 | QQ2440 V3 SBC-2410X |
FL2440 OK2440-IV V4 | OK2440-III OK2440V3 | TE2440-II TE2440V2 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | 开发板配件 模块和其他 |
Xilinx开发板/fpga开发套件 | altera开发板/fpga开发套件 | 基于FMC FPGA/DSP子卡 |
BeagleBoard原厂开发板 | PandaBoard原厂开发板 |
TI DM3730 DevKit8500D | TI系列 omap3530开发板 | ATMEL系列 开发板 | Samsung系列 开发板 | 开发板配件-仿真器 模块 | NXP LPC3250 mini3250 |
Tiny210 三星S5PV210 | Mini210/Mini210s开发板 | Tiny4412开发板Cortex-A9 | Tiny6410开发板 ARM11 | mini2440开发板 ARM9 | micro2440开发板 ARM9 | mini6410开发板 ARM11 | 友善ARM开发板配件 模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
FL2440 OK2440-IV V4 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | OK210/-A Cortex-A8 | TE2440-II TE2440V2 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | ARM开发板配件 模块等 |
Real6410开发板/套餐 | Real210开发板/Real2410 | WIFI GPS GPRS模块摄像头 |
Xilinx开发板/开发套件KIT | Altera开发板/开发套件KIT | 配套模块 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | 最小系统模块类(初学者勿选) | 开发工具 仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
DM3730/AM3715/AM3359 | OMAP3530AM1808AM3517 | 飞思卡尔Cortex-A9开发板 | ATMEL系列ARM开发板 | NXP LPC3250 LPC1788 | Samsung系列ARM开发板 | STM32系列F207/F407 | ARM开发板配件-仿真器 模块 |
Realv210 S5PV210开发板 | Real6410开发板 ARM11 | WIFI GPS GPRS模块摄像头 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | ARM小系统模块(初学勿选) | 开发工具 ARM仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
Exynos4412开发板A9四核 | UT-S5PV210 S5PC100 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 |
Xilinx开发板 FPGA开发套件 | altera开发板 FPGA开发套件 | FMC模块 配件 下载线 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
s3c2410 ARM9 FS2410 | s3c2440开发板 ARM9 | s3c44B0开发板 ARM7 | s3c6410 2450 2443/13 | PXA270 PXA320 PXA255 | Atmel 9200 9261 9G20 | Philips NXP开发板YL-LPC | FS-EP9315开发板ARM9 | LCD液晶屏TFT真彩/触摸屏 | ARM仿真器/仿真调试工具 | ARM开发板配套ARM核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯开发板UP-DRAGON-I | 物联网教学科研设备 | EDA/FPGA/SOPC教学科研 |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | YC-ePC-A系列人机界面 | Mars-EDA套件CPLD FPGA | 触摸屏LCD 摄像头 WI-FI模块 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器/仿真系统 | DSP开发板/DSP试验箱 | DaVinci系列多媒体平台 | Xilinx FPGA大学计划产品 | SEED教学实验系统 | FPGA/DSP FPGA开发板 | TI原厂开发板套件/CCS软件 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
广嵌实验室项目产品 | GEC2440/GEC6410开发板 |
泰克Tektronix示波器 | 普源RIGOL示波器 | USB虚拟示波器 |
UT-S5PC100 UT-S5PV210 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 | 开发板模块wifi gps等 |
EMA OMAP3530开发板 | EMA OMAP 3530核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx Altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯系列 UP-DRAGON-I |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | 触摸屏LCD 摄像头 WI-FI模块 | Mars-EDA套件CPLD FPGA | ePC系列工控一体机ARM9 A8 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器 | DSP开发板 | DSP实验箱 | Xilinx FPGA大学计划产品 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
ARM开发板S3C6410等 | Cortex-A8/ARM11仿真器 | ADSP Blackfin开发板 | FPGA Spartan-3E开发板 |
GEC2410开发套件ARM9 | GEC2440开发套件ARM9 |
泰克 示波器 |
择要:先容了利用ColdFire uClinux实现数据征求和传输。这项技能被用在大型集装箱检测体系中,获取了很好的结果。
关键词:ColdFire uClinux 数据征求
在ColdFire上嵌入uClinux利用体系是一项比较成熟的技能,般应用在手持配置、家庭网关、财产控制中。但在数据征求应用中利用这项技能却不是很常见,缘故因由是uClinux不是及时利用体系,而数据征求应用对数据征求的及时性恳求很高。本文先容怎样利用在ColdFire上嵌入uClinux利用体系的要领来实现数据的征求和传输。
1 硬件平台
恣意嵌入式应用体系都离不开细致的硬件平台,这里先先容一下体系采取的硬件平台。图1所示即为硬件布局的表现图。此中,SPM是数据处理惩罚处罚模块,它控制前真个A/D变动,根据设置的征求周期将A/D变动后的数据生存在其内部的RAM中;同时发出一此克制信号。ColdFire 5307 xBoard是基于Motorola公司高性能嵌入式32位处理惩罚处罚器ColdFire 5307自行开辟的嵌入式应用开辟板。其硬件配置包括:
ColdFire5307 90MHz 32位处理惩罚处罚器;16M SDRAM;2M Flash ROM;10Mbps以太网接口;两个UART串口;两个64针的地点和数据总线接口。
ISC(图像控制变乱站)和IDS(图像数据变乱站)是两个变乱站,用来对体系实现控制,对图像数据实现处理惩罚处罚。XBoard和变乱站处在同一个以太网上,该以太网上还配有别的的配置。uClinux所要实现的结果是及时地将SPM上征求的数据通过以太网传到IDS上,同时汲取来自ICS的下令以对SPM举行控制。
2 SPM和xBoard之间的连接
uClinux须要读取SPM中的RAM,以是最好是把SPM中的RAM作为uClinux的内存地点的一部分。SPM和xBoard上MCF5307之间的硬件连接如图2所示。
SPM中RAM的地点线、数据线和控制线直连续到CPU的总线上。除了硬件上的连接之外,还须要设置MCF5307的寄存器,为SPM上的RAM分派内存空间。XBoard在加电时起首运行debug步调,以是在debug中举行寄存器的设置是比较切合的。在debug源代码中的sysinit.c文件里的mcf5307_cs_init函数中加上下面的语句:
MCF5307_WR_CS_CSAR5(imm,0xa000); SPM的地点从0xa0000000开始
MCF5307_WR_CS_CSCR5(imm,0x3d40); 采取8位的读要领
MCF5307_WR_CS_CSMR5(imm,0x01FF0001); 空间大小为1M
将SPM控制的引脚和MCF5307的并口引脚相连,这产对SPM的控制就只需设置并口的相应位了。
3 uClinux下的及时性
uClinux并不是一个及时利用体系(RTOS),怎样利用uClinux完成有及时性恳求的数据征求是须要思量的标题。由于应用中只一个及时的任务——从SPM中读取数据,以是采取克制的要领来对数据征求完的信号提供及时相应。下面的代码用来向uClinux注册IRQ7克制处理惩罚处罚步调:result=request_irq(ECM_IRQ,ecm_interrupt,0,“ecm”,NULL);
在克制处理惩罚处罚步调中,先封闭克制,由于克制嵌套在这里是没存心义的,另有一个告急的缘故因由是SPM克制信号的低电平连续时间比较长。CPU是利用低电平来标记断信号的,以是CPU大概在SPM的一此克制信号中检测到多次克制。封闭克制后,从SPM的RAM中读取数据。由于SPM和xBoard之间的连接已得到包管,SPM的内部RAM成为uClinux的内存空间的一部分,以是读的变乱是很大抵的,只是将数据从一个地点读到别的一个地点,读完数据后打开克制。读数据之间孕育产生的克制都市被敷衍。读数据块的大小为4096字节,读完全部的数据须要2ms。以是在征求周期低于2ms的环境下,体系无法正常变乱。不过这个指标低于应用的恳求。
4 数据的临时存放
xBoard上并没有大的存储配置,以是uClinux征求的数据必须及时地发送出去。以太网上通过互换机连接着多个配置,在网络繁忙的时间并不克不及包管数据会被及时地传出去。办理这个标题标要领是开辟一个缓冲区,将临时无法传出去的数据放在缓冲区中。
由于没有MMU的支持,uClinux不克不及提供内存掩护机制,进程可以随意读取恣意内存地点。如许,在带来方便的同时也增长了一些贫苦。方便的一壁表如今可以在进程中开辟缓冲区,在内核中用同样的地点利用缓冲区;倒霉的一方面表如今开辟动态内存必须非常鉴戒,不克不及和别的进程孕育产生重叠。
在进程中开辟了50个数据缓冲片,这些缓冲片通过三个双向链表维持形成缓冲区。全部的缓冲片被挂在一个称为list的双向链表中,退出进程的时间,应该将这些动态内存开释。同时,将存有有效数据(即尚未被发送出去的数据)的缓冲片放在称为dirty的双向链表中,将可以利用的缓冲片放在称为clean的双向链表中。克制处理惩罚处罚步调每次从clean链表中获取一个缓冲片,存入数据后放到dirty链表中;相反,发送进程每次从dirty行列步队中取一个缓冲片,发送其生存的数据,然后把它放到clean链表中。如许可以在肯定步调上为网络速率的稳固提供缓冲。
5 uClinux上运行任务的阐发
在uClinux上运行了三个任务:读取征求数据、通过以太网发送数据、汲取和实行来自ICS的下令。此中的读取征求数据任务对及时性有恳求,把它用克制处理惩罚处罚步调来实现,而别的的两个任务则通过用户进程来实现。通过以太网发送数据的任务和读取征求数据的任务其享一个缓冲区,通过ioclt函数在它们它们转达缓冲区双向链表的地点。以是还须要为SPM注册一个驱动步调,这也是在uClinux利用中比较分外的进程和内核通讯的要领。同时,把对SPM的设置和查问等利用也包装在这个驱动步调里同,这些利用都是通过ioctl函数向程提供接口。注册驱动步调的函数是:
result=register_chrdev(ECM_MAJOR,“ecm”,&ecm_fops);可见,这里把SPM作为一个字符型的配置,由于缓冲区是共享,以是必须提供一个锁相制,使得在某个进程向缓冲片中写数据时,别的的进程不读或写该缓冲片。
UClinux不但在信息家电、低端网络配置和财产控制范畴中有较广的应用,并且在大抵的数据征求和传输方面也有了应用方案。
博航网 www.broadon.net 版权所有
京ICP备10051899号-2 京公网安备110108006479号