新闻中心

EEPW首页>电源与新能源>设计应用> 基于嵌入式Linux多磁控管电源控制系统设计

基于嵌入式Linux多磁控管电源控制系统设计

作者: 时间:2008-11-28 来源:网络 收藏

  2、驱动程序的编写和内核的裁剪

  设计采用操作系统作为操作平台。从系统发展的过程来看,Linux从最开始就是一个开放的系统,并且遵循着源代码开放的原则,它是一个稳定的网络操作系统,作为系统有如下优势。

  (1) Linux的源码开放性允许任何人可以修改它的源代码。这样可以降低开发的成本,另一方面可以提高开发成本。(2) Linux支持X86、ARM、MIPS、SH等多种体系结构,并且已经移植到多种硬件平台。(3)Linux有独特的内核模块机制,它可以根据用户需要,实时的将某模块插入到内核或者从内核中移走。(4)linux系统内核精简、高效和稳定,能够充分发挥硬件功能,因此比其他操作系统运行更高效率。(5)Linux是首先支持TCP/IP协议栈的操作系统,它的内核在网络方面非常的完。www.51kaifa.com

  因为开发的目标环境针对特定的操作系统,因此采用宿主机/目标机的方式,在PC机上装Linux操作系统,建立交叉编译环境arm-gcc。然后为设计系统硬件编写特定驱动程序,主要包括显示模块和串口通讯模块的驱动功能。

  2.1液晶显示模块完成人机友好界面的数据驱动,对图形具有显示能力,设计中采用模块化的方法设计驱动程序。液晶显示驱动程序设计的内容如下:

  (1)首先对驱动程序管理的硬件进行必要的初试化。(2)初始化设备相关的参数。(3)在内核中注册设备。其中涉及到重要的结构体为:static struct fb_ops s3c2410fb_ops;(4)其他的初始化工作。int __init s3c2410fb_init(void);int __init s3c2410fb_setup(char *options)。

  2.2串口通讯完成主控芯片发送数据和命令给从芯片,使从芯片完成端口的波形输出,通过输出的波形控制大功率设备的功率。同时大功率设备通过测量电路反馈实际功率给从芯片,从芯片通过串口发送数据给主控芯片显示正确的功率数据,方便用户查看。串口驱动的设计内容:

  (1)初始化串口相关的硬件设备。涉及到重要的结构体为:

  static struct tty_driver normal, callout;
  static struct tty_struct *s3c2410_table[UART_NR];
  static struct termios *s3c2410_termios[UART_NR];
  static struct *s3c2410_termios_locked[UART_NR]。

  (2)注册中断服务程序。接受中断服务程序:

  static void s3c2410uart_rx_interrupt(int irq, void *dev_id,,struct pt_regs *regs);

  发送中断服务程序:

  static void s3c2410uart_tx_interrupt(int irq, void *dev_id, ,struct pt_regs *reg);

  (3)在内核中注册设备。uart_register_driver(s3c2410_reg)。

  (4)设备的加载和卸载。module_init(s3c2410uart_init);module_init(s3c2410uart_init)。

  设计好硬件驱动程序后,为控制主芯片裁剪Linux内核以适合控制设备的需要。进入PC机Linux操作系统,进入ViVi原代码目录,执行“make menuconfig”命令开始配置内核。配置完毕以后再执行“make”命令便宜ViVi。将ViVi的映像文件通过JTAG烧写到设计好的硬件电路板中。

  进入Linux内核文件中执行“make menuconfig”命令开始配置Linux内核文件,选上要使用的驱动选项并根据电路板实际芯片模块配置内核,最后使用“make”命令编译内核文件。如果编译出问题需要修改内核文件。编译成功以后通过串口将生成的映像文件下载到电路板中。之后ViVi 就可以启动下载好的内核文件。内核的设计及其调试流程图2—1。

基于嵌入式Linux的多磁控管电源控制系统设计

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

磁控管相关文章:磁控管原理




评论


相关推荐

技术专区

关闭