• 基于ARM9芯片的S3C2440和Linux操作系统设计SPI驱动程序

    基于ARM9芯片的S3C2440和Linux操作系统设计SPI驱动程序

    在嵌入式开发过程中,许多系统通常使用串口驱动来满足通信要求,但在实际应用中,使用SPI通信方式会更加高效和快捷[2]。SPI接口是一种高速、高效的串行接口技术,因而SPI设备在数据通信应用中十分方便[3]。本文基于ARM9芯片的S3C2440和Linux操作系统,设计了一种SPI驱动程序,该驱动程序功能可靠灵活、易于移植,可应用于多种嵌入式平台,实现ARM与设备之间的通信。 1硬件说明 1.1S3C2440开发平台 1.2SPI硬件模块 S3C2440具有两个SPI,每个SPI具有两个8位移位寄存器用于独立地发送和接收数据,并兼容SPIver.2.11协议,支持8位逻辑预分频,系统可用polling、中断、DMA三种方式判断SPI发送及接收状态。此SPI模块共包含以下信号线[5]: (1)SCK:数据同步时钟信号,由主设备驱动,向从设备输出,使得从设备按照同步时钟的步调来接收或发送数据。 (2)nCS(由用户指定GPIO):从设备选择信号线(SlaveSelect,SS)由主设备发出,用来选择激活某个从设备,低电平有效。 (3)MISO(SPIMISO0):主入从出信号线,表示该信号在主设备中作为输入,在从设备中作为输出。 (4)MOSI(SPIMOSI0):主出从入信号线,表示该信号在主设备中作为输出,在从设备中作为输入。 (5)/SS(nSS):多主错误检测。 2Linux下的SPI设备驱动程序设计 Linux设备驱动在Linux内核中扮演着重要的角色。它可使某些特定硬件响应一个定义良好的内部编程接口,这些接口完全隐藏了设备工作的细节。用户操作可通过一组标准化的调用来执行,这些调用在形式上完全独立于特定的驱动程序,而将这些调用映射到实际硬件设备的特有操作上,则是驱动程序的任务[6]。本设计的SPI驱动主要定义了初始化、读和写三个操作。其中初始化操作用于驱动程序第一次加载到内核运行时,对一些内核机制及存储器进行初始化。写操作负责将用户数据拷贝至内核缓冲区,控制本地主SPI发送数据至从SPI寄存器中。读操作将按照用户要求读取的字节数,连续读取本地主SPI中接收到的数据,并将其拷贝至用户空间。驱动程序将采用中断的方式通知系统SPI数据是否发送完毕,即当SPI硬件模块每发送完毕一个数据,都会通过中断线向系统发起中断,系统响应中断后,驱动程序将调用中断处理例程。 2.1SPI初始化 (1)申请中断。此驱动设计通过中断判断数据是否发送完毕,所以需要申请SPI0相关的中断,并注册相应的中断处理函数。此驱动程序的中断处理函数声明如下: staTIcirqreturn_ts3c2440_isr_spi(inTIrq,void*dev_id,structpt_regs*reg) 利用request_irq向内核申请中断号并注册中断处理函数: request_irq(IRQ_SPI0,s3c2440_isr_spi,SA_INTERRUPT,DEVICE_NAME,s3c2440_isr_spi); (2)虚拟地址映射。驱动程序可以直接通过访问内核中的虚拟地址来访问设备物理地址所对应的寄存器,对其进行操作。SPI设备的地址映射过程如下: request_mem_region(S3C2440_PA_SPI,0x30,“s3c2440-spi”); base_addr=ioremap(S3C2440_PA_SPI,0x30); 其中S3C2440_PA_SPI为SPI的物理地址(在/asm-arch/arch-s3c2440/map.h中定义),从S3C2440_PA_SPI开始分配0x30大小的内存区域,此后将其移至内核空间。 (3)相关寄存器的设置。通过配置SPI功能寄存器设置SPI工作模式。以ioremap返回的虚拟地址为基址,通过增加不同偏移量访问相应寄存器。本次设计将本地SPI设为主设备,开启SCK信号使能,设定CPOL和CPHA均为0,SPI工作在普通模式下。设置波特率预分频寄存器(SPPRE)中的分频比为8。具体设计如下: __raw_writel((S3C2440_SPCON_SMOD_INT|S3C2440_SPCON_ENSCK|S3C2440_SPCON_MSTR),s3c2440_SPCON); DPRINTK(DEVICE_NAME“SPCONiniTIalizen”); __raw_writel((S3C2440_SPPIN_ENMUL|S3C2440_SPPIN_KEEP),s3c2440_SPPIN); DPRINTK(DEVICE_NAME“SPPINiniTIalizen”); __raw_writel(0x07,s3c2440_SPPRE); DPRINTK(DEVICE_NAME“SPPREinitializen”); (4)初始化发送和接收数据缓冲区。数据缓冲区使用环形缓冲区结构,通过头尾指针的循环移动,实现对缓冲区的动态管理。其定义如下: typedefstruct { spi_bufbuf[MAX_SPI_BUF]; unsignedinthead,tail; wait_queue_head_twq; }SPI_BUF;staticSPI_BUFspi_Tx_buf;staticSPI_BUFspi_Rec_buf; 其中spi_buf表示char型,MAX_SPI_BUF为缓冲区大小,设为1024B。head、tail分别表示头尾数组下标,wq为等待队列头。此结构依靠以下宏进行管理: #defineSPI_Tx_BUF_HEAD(spi_Tx_buf.buf[spi_Tx_buf.head]) #defineSPI_Tx_BUF_TAIL(spi_Tx_buf.buf[spi_Tx_buf.tail]) #defineINCBUF(x,mod)((++(x))&((mod)-1)) 前两个宏用于引用缓冲区中的元素,最后一个宏用于对头尾下标进行前移,并保证头尾下标数值可循环变化,不发生溢出。 在初始化时,分别对接收和发送缓冲区的头尾指针进行清零操作,具体如下: spi_Tx_buf.head=spi_Tx_buf.tail=0;spi_Rec_buf.head=spi_Rec_buf.tail=0; (5)内核机制相关的数据结构初始化。本设计所使用的内核机制包括了中断上下半部的操作和睡眠等待机制,因此需要对发送、接收等待队列以及tasklet结构进行初始化,并注册tasklet处理函数。初始化过程如下: init_waitqueue_head(&(spi_Tx_buf.wq)); init_waitqueue_head(&(spi_Rec_buf.wq)); tasklet_init(&spi_tasklet,spi_tasklet_handler,data); (6)初始化相应端口。根据S3C2440外部管脚配置,将与SPI功能引脚复用的GPIO设定为SPI相应功能。具体操作如下: s3c2440_gpio_cfgpin (S3C2440_GPE11,S3C2440_GPE11_SPIMISO0); s3c2440_gpio_cfgpin (S3C2440_GPE12,S3C2440_GPE12_SPIMOSI0); s3c2440_gpio_cfgpin (S3C2440_GPE13,S3C2440_GPE13_SPICLK0); s3c2440_gpio_cfgpin (S3C2440_GPG2,S3C2440_GPG2_INP);//设置nSS s3c2440_gpio_cfgpin(S3C2440_GPB10, S3C2440_GPB10_OUTP);//设置片选信号 s3c2440_gpio_setpin(S3C2440_GPB10,1); 2.2SPI写操作 写操作主要是将上层应用部分的用户空间中的数据拷贝到内核空间中的环形缓冲区中,此后将缓冲区的数据送到SPI发送寄存器中,在SPI发送完一个数据后,系统产生中断,中断例程中的下半部将调用tasklet判断缓冲区状态。若缓冲区中有相应的空间,可以将下一数据填入SPI发送寄存器中,直至将缓冲区数据全部发送完毕。 本设计的写操作实现了环形缓冲区的动态管理,即在缓冲区删除数据、尾指针前移的情况下,允许向缓冲区添加数据,头指针前移。此设计可以使用户空间任务与内核空间的数据发送同时进行,提高了用户空间任务执行效率,并且当利用copy_from_user函数将数据从用户空间拷贝至内核空间时,数据发送仍在进行,即数据从用户空间至内核空间拷贝过程与数据发送过程并发,提高了驱动程序效率。 为了实现环形缓冲区动态管理,定义了copy_to_Tx_buf_init和copy_to_Tx_buf两个函数完成数据向缓冲区的复制操作。 (1)copy_to_Tx_buf_init函数。本函数主要用于两种情况: ①如果缓冲区为空,当有一组数据到来且此数据的大小小于缓冲区的空间大小时,直接将此数据放到缓冲区中。 ②如果发送数据的大小大于剩余缓冲区的空间,则只复制缓冲区大小的数据到缓冲区。 缓冲区满,该进程进行睡眠操作,直到缓冲区所有数据发送完毕,缓冲区再次为空,当前进程被唤醒,将此组用户数据的未发送部分复制到缓冲区,继续发送。 (2)copy_to_Tx_buf函数。此函数主要用于缓冲区正在发送且未发送完毕的情况,将新一组用户数据copy至缓冲区。首先计算缓冲区剩余空间,若剩余空间大于本组用户数据大小,则直接将用户数据全部copy至缓冲区;若剩余空间小于本组数据大小,则copy与剩余空间大小相同的用户数据至缓冲区。 写操作的具体流程如图1所示,首先用户数据从空间态转换到内核态,并设置相应的接收标志位。此后判断数据大小。若数据大于缓冲区空间,数据发生溢出,写操作结束;若没有溢出,为了保证进程间的数据,使得该进程获得自旋锁,此时判断缓冲区是否为空。根据上面两个函数的介绍,在不同情况下分别调用不同的函数,在数据写入环形缓冲区后,将数据发送到SPI的发送寄存器。当SPI发送寄存器发送数据时,环形缓冲区依旧接收数据,如果此时缓冲区为满,则释放自旋锁,并设置进程等待标志位(wait_Tx_done),将此进程休眠,直到发送寄存器中的数据发送完毕,再唤醒进程,判断数据是否全部发送完毕。若仍有数据等待发送,则调用copy_to_Tx_buf_int;若数据已全部发送完毕,则写操作结束。若缓冲区不为满,则判断数据是否发送完毕。数据全部发送完毕,发送操作结束。 2.3SPI读操作 读操作是连续读取主SPI发送到从SPI的接收缓冲区中的数据,并将其传送给用户空间。具体流程如图2所示。首先判断操作标志位spi_Rec_en,若此位为0,说明此时驱动正处于发送状态,则将发送进程等待标志位(wait_Tx_done)置1,读进程进入休眠状态即放入等待队列中,等待中断处理函数中相关发送程序唤醒。若操作标志位不为1,读进程首先获得自旋锁,判断数据大小。若数据大小不为0且不超过缓冲区大小,则按照S3C2440接收数据的要求,向SPI发送寄存器写入第一个dummy数据(0xff)。此后,将接收进程等待标志位(wait_Rec_done)置1,释放自旋锁,并将此进程加入等待队列进行休眠,直到用户要求的所有数据已发送至接收缓冲区后,由中断处理函数唤醒该进程,最后将接收区中的数据放到临时接收缓存中,以便于其他操作读取。 3SPI驱动程序测试 SPI驱动程序主要通过调用写操作,使SPI连续发送数据0x55,此后再调用SPI读操作,将MISO上的串行数据读入用户缓冲区,并与实际数据进行比较。图3为示波器测试MOSI引脚波形。图中波形1为SCK信号,ARM系统时钟为40MHz,SPI的SCK信号为系统时钟的256分频,约为156kHz;波形2为MOSI信号,SPI从低位向高位串行移位。通过波形可以看出,SPI驱动能够准确地完成读写操作,验证了其正确性。

    时间:2021-04-15 关键词: S3C2440 SPI arm9 Linux ARM

  • 详谈Linux系统之实时监控相关技术

    详谈Linux系统之实时监控相关技术

    万物互联和大数据技术的发展,让我们的生活更加活色生香,其背后离不开安全、稳定可靠的服务器系统。 这里我们主要是从系统日常行为安全的角度分享一种能满足线上部署、能够将进程或文件创建、网络连接、网络I/O、文件I/O、shell操作、数据库操作、telnet操作、http访问、系统调用(syscall)和系统资源信息等系统相关的行为信息实时采集和存储的Linux行为监控技术。 传统监控技术 现有系统行为监控的实现技术主要采用以下方法: 1.LinuxKprobes调试技术 Kprobes调试技术是一种专为Linux内核跟踪和调试而设计的特定API。Kprobes允许内核开发人员为任何内核指令以及函数入口和函数返回处理程序安装预处理程序和后处理程序,这些处理程序可以访问并更改寄存器。这样一来,内核开发者们就可以监控系统调用相关工作流程并簿记。利用Kprobes技术,内核开发人员可以在内核的绝大多数指定函数中动态地插入探测点来收集所需的调试状态信息;关于“调用了哪些系统”、“系统何时被调用”、“执行是否正确以及函数的入参和返回值是什么”等疑惑都可以轻松解决。此外,还能将这些信息屏幕输出或转储日志文件。 2.Linux内核的tracepoints(跟踪点)技术 内核的tracepoint是一种轻量级的hooks技术,使用高效的系统调用行为跟踪及相关性能计算,对系统本身的性能只有微小的时间损失和空间损失。通过注册syscall_enter_probe等定制的probe函数,在发生系统调用相关行为后,内核找到probe函数,并将参数等信息传递给probe函数。只要将probe函数中记录的相关行为信息输出,即可达到监控目的。 在现有的Linux系统行为监控工具中,采用LinuxKprobes调试技术、Linux内核的tracepoints(跟踪点)技术的工具有:strace、ftrace、tcpdump、lsof、htop、iftop、systemTap、perf…… 以上的工具通常只能作为日常内核开发调试或日常运维分析工具来使用,主要用于开发调试或问题定位等简单的信息输出。然而,这些工具存在一些使用缺陷,可以总结为以下几点: 1、仅适用于内核开发人员调试使用或是运维人员在现场开启使用,各工具特点不一,难以满足系统全面监控的需求。 2、没有提供行为数据的良好存储能力,只提供简单的输出或是日志存储。由于没有数据缓存功能,容易造成行为数据的丢包,不能很好地支撑事后数据回放或分析。 3、不能进行线上运行的实时部署,只能在事后或事中开启,无法满足运维或安全监控的自动化要求。在高吞吐、高并发的服务器上,增加了服务器运行的负担。 新型实时监控缓存技术方案 针对现有技术无法满足线上实时部署、影响服务器性能、行为数据不具备良好的存储和缓存功能等缺陷,我们给大家分享一种具备实时监控和缓存功能的技术方案。 该方案主要是采用分层结构的模型进行架构的,具体分为内核probe层、基于内存映射mmap技术的buffer层、基于本地数据库的用户态缓存层。具体结构如下图: 业务流程描述 下面通过一个具体的系统行为事件信息采集-缓存的例子,来说明这三层之间的业务流关系: 首先,当用户发起网络连接服务主机操作,在服务主机系统中将发生socketaccpet系统调用中断,服务进程陷入内核态,进入系统调用例程。 其次,通过Linux内核tracepoints机制,内核查找系统调用tracepoint的probe函数;此时,内核查到已经挂载的内核probe层的probe函数,并将相应accpet系统调用参数信息传入probe函数。 接下来,内核probe层的probe函数将传来的系统调用相关信息进行分类、序列化处理后,将相关参数信息转化为系统行为事件信息写入mmapbuffer层。 最后,用户态缓存层进程通过mmap映射技术,从mmapbuffer层读取具体的系统行为事件信息,将系统行为事件信息再次格式化为易于阅读和分析的字符串信息,并选择一种本地或分布式的缓存技术,持久化存储系统行为事件信息。 通过上述业务流程的分析,可以概括出上述三层主体功能分别为:内核probe层采集系统调用信息、mmapbuffer层转化系统行为事件信息、用户态缓存层持久化系统行为事件信息。如下图所示: 通过上文可以得知,本方案与目前现有工具或方案的主要区别在于本方案体现了以下两方面:实时性、缓存持久化。 实时性 “实时性”就是指系统操作行为(系统调用)信息能够实时感知,“零损耗”地对信息进行采集。 我们知道系统行为信息的采集是由“内核probe层”完成的,在该层中主要也是采用了Linux内核字符设备驱动技术+Linuxtracepoints机制。通过开发Linux内核字符设备驱动来驱动probe模块,在probe模块中挂载tracepoint函数,采集各系统调用的相关信息。 为了实现系统调用信息从内核probe层到用户态缓存层的“Zerocopy”高效传递,在probe层与用户态缓存层采用了Linux内核驱动与用户态进程实现地址共享的mmapbuffer技术方案。 缓存持久化 经过内核probe层采集的系统行为事件信息存放在mmapbuffer层中,为了实时高效地将这些事件信息持久化存储,本方案采用了一种开源高效的本地文件数据库引擎,该引擎占用资源少、无需安装和管理配置、数据吞吐率每秒可达上万条记录。这样轻型的持久化模块,可以通过“零损耗”的方式部署到线上服务器,而不占用服务器资源。 从mmapbuffer层中读取到系统行为事件信息,在用户态缓存层还可以根据具体业务的要求,做一些数据处理分析,如格式化、过滤等。最终存放到文件数据库中,从而实现系统行为事件信息的持久化缓存。

    时间:2021-04-15 关键词: 操作系统 监控 Linux

  • 基于μC/0S一Ⅱ和LPC2129微控制器实现智能机器人控制系统的设计

    基于μC/0S一Ⅱ和LPC2129微控制器实现智能机器人控制系统的设计

    1 引言 轮式移动机器人是机器人研究领域的一项重要内容,它集机械、电子、检测技术与智能控制于一体,是一个典型的智能控制系统。智能机器人比赛集高科技、娱乐、竞技于一体,已成为国际上广泛开展的高技术对抗活动。现以ARM7处理器为控制核心,采用无线通信技术,并移植嵌入式实时操作系统μC/0S一Ⅱ设计了一套智能机器人控制系统。 2 硬件设计 根据竞技机器人的功能要求进行总体设计,将各个功能进行模块化,其控制系统硬件框图如图1所示。中央处理器采用微控制器结构,用以控制外围设备协调运行。舵机控制机器人的运动方向;驱动电机电动机采用输出轴配有光电编码器的小型直流电机驱动车轮旋转。电磁铁作为机械手夹紧的执行元件。设置了两路超声波传感器、8路光电检测输入和8路开关量检测接口。整个机器人的运行状态和运行参数通过LCD动态显示。 2.1 微控制器的选型 机器人要实现的动作和功能较多,需要多个传感器对外界进行检测,并实时控制机器人的位置、动作和运行状态。系统中的所有任务最终都挂在实时操作系统μC/0S一Ⅱ上运行,因此不仅要考虑微控制器的内部资源,还要看其可移植性和可扩展性。LPC2129是Philips公司生产的一款32位ARM7TDMI—S微处理器,嵌入256 KB高速Flash存储器,它采用3级流水线技术,同时进行取指、译码和执行,而且能够并行处理指令,提高CPU的运行速度。由于它的尺寸非常小,功耗极低,抗干扰能力强,适用于各种工业控制。2个32位定时计数器、6路PWM输出和47个通用I/0口,所以特别适用于对环境要求较低的工业控制和小型智能机器人系统。因此选用LPC2129为主控制器,可以获得设计结构简单、性能稳定的智能机器人控制系统。 2.2 无线通信接口设计 系统采用迅通公司生产的PTR2000无线通信数据收发模块。电路接口如图2所示。该模块基于NORDIC公司生产的射频器件nRF401开发,其特点是:①有两个频道可供选择,工作速率高达20 Kb/s;②接收发射合一,适合双工和单工通信,因而通信方式比较灵活;③体积小,所需外围元件少,接口电路简单,因此特别适合机器人小型化要求;④可直接接单片机串口模块,控制简单;⑤抗干扰能力强;⑥功耗小,通信稳定。 2.3 光电检测模块设计 2.3.1 光电检测过程 设计光电检测模块,使机器人能够检测地面上的白色引导线。光电检测电路主要包括发射部分和接收部分,其原理如图3所示。发射部分的波形调制采用了频率调制方法。由于发光二极管的响应速度快,其工作频率可达几兆赫兹或十几兆赫兹,而检测系统的调制频率在几十至几百千赫兹范围之内,因此能够满足要求。光源驱动主要负责将调制波形放大到足够的功率去驱动光源发光。光源采用红外发光二极管,工作频率较高,适合波形为方波的调制光发射。 接收部分采用光敏二极管接收调制光线,将光信号转变为电信号。这种电信号通常较微弱,需进行滤波和放大后才能进行处理。调制信号的放大采用交流放大形式,可以将调制光信号与背景光信号分离开来,为信号处理提供方便。调制信号处理部分对放大后的信号进行识别,判断被检测对象的特性。因此,该模块的本质是将“交流”的、有用的调制光信号从“直流”的、无用的背景光信号中分离出来,从而达到抗干扰的目的。 2.3.2 光电探头 在机器人底盘前部安装有光电探头,共设置了5个检测点,其结构如图4所示。 从理论上讲,检测点越多,越密,识别的准确性与可靠性越高。但是硬件的开销与软件的复杂程度也相应增加。采用该寻线系统保证了检测的精确度,也节约了硬件的开销。发光二极管发出的调制光经地面反射到光敏二极管。光敏二极管产生的光电流随反射光的强弱线性变化。检测出这种变化,即可判断某一个检测点是否在白色引导线的上方,从而判断机器人和白色引导线的相对位置。 2.4 超声波测距传感器设计与实现 两路超声波传感器用以控制机器人避开障碍物,并预测机器人相对目的地距离,起导航作用,其接收部分与微控制器的捕获和定时管脚相连接。整个超声波检测系统由超声波发射、超声波接收和单片机控制等部分组成。发射部分由高频振荡器、功率放大器及超声波换能器组成。经功率放大器放大后,通过超声波换能器发射超声波。 图5给出由数字集成电路构成的超声波振荡电路,振荡器产生的高频电压信号通过电容C2隔除掉了信号中的直流量并给超声波换能器MA40S2S。其工作过程:U1A和UlB产生与超声波频率相对应的高频电压信号,该信号通过反向器U1C变为标准方波信号,再经功率放大,C2隔除直流信号后加在超声波换能器MA40S2S进行超声波发射。如果超声波换能器长时间加直流电压,会使其特性明显变差,因此一般对交流电压进行隔除直流处理。U2A为74ALS00与非门,control_port(控制端口)引脚为控制口,当control_port为高电平时,超声波换能器发射超声波信号。 图6示出为超声波接收电路。超声波接收换能器采用MA40S2R,对换能器接收到的信号采用集成运算放大器LM324进行信号放大,经过三级放大后,通过电压比较器LM339将正弦信号转换为TTL脉冲信号。INT_Port与单片机中断管脚相连,当接收到中断信号后,单片机立即进入中断并对超声波信号进行处理和判断。 3 实时操作系统μC/OS—II的移植 μC/OS—II是一个嵌入式实时操作系统内核,包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等基本功能。μC/OS—II进行任务调度时,会把当前任务的CPU寄存器存放到该任务堆栈中,然后再从另一个任务堆栈中恢复原来的工作寄存器,继续运行另一个任务。 根据各个控制功能和微控制器的资源结构对任务进行划分,共划分为7个应用任务,其划分过程如图7所示。无线串行通信采用中断接收方式,保证数据接收的实时性。 μC/OS一Ⅱ任务的建立包括定义任务堆栈、设定任务优先级、初始化该任务要求的系统硬件及实现具体的控制过程等4部分。现以任务1为例,介绍应用任务的建立过程。 在嵌入式实时操作系统环境下开发实时应用程序,可使程序的设计和扩展变得容易,而且无需大的改动即可增加新的功能。通过将应用程序分割成若干独立的任务模块,可大大简化应用程序的设计过程;而且能快速、可靠地对实时性要求苛刻的事件。通过有效的系统服务、嵌入式实时操作系统,能使系统资源得到更好的利用。 4 调试运行 在机器人控制系统起动时,μC/OS一Ⅱ对堆栈空间、各个控制寄存器和外设器件的硬件进行初始化,并设定当前各个功能部件的初始状态。 在实时机器人系统下,机器人正常启动后,系统实时监视机器人在比赛场上的运行状况,若出现某一动作或功能无效则给出出错信息。正常运行时实时显示机器人在比赛场上的坐标值和动作状态,如图8所示。 5 结语 根据智能机器人的控制要求,设计了基于无线通信的嵌入式机器人控制系统。在软件设计上移植了嵌入式实时操作系统μC/OS一Ⅱ。利用光电检测模块和超声波导航模块感知外部信息,实现了对智能机器人的控制。

    时间:2021-04-15 关键词: 无线通信 微控制器 机器人 嵌入式 控制系统

  • 基于S3C4480处理器和μC/OS-Ⅱ实现机器人控制系统的设计

    基于S3C4480处理器和μC/OS-Ⅱ实现机器人控制系统的设计

    移动机器人是一种能够感知外部环境,在有障碍物的环境中能够实现动态决策与规划,从而完成避障等多种功能的综合系统。机器人系统通常分为机构本体和控制系统两部分,控制系统的作用是根据用户的指令对机构本体进行操作和控制。随着机器人的智能化水平越来越高,控制器要有方便、灵活的操作方式,以及多种形式的控制方式和高度可靠性,还要有很高的实时性。 为了保证系统的实时性,简化控制系统软件的设计,有必要在控制系统引入嵌入式操作系统。本设计将嵌入式技术与机器人技术相结合,利用ARM作为硬件平台并移人μC/OS-Ⅱ嵌入式实时操作系统,开发了具有多线程、多任务管理的控制终端。嵌入式主控制器ARM是整个机器人控制系统的核心,主要完成环境感知、组织管理、总体任务分配。嵌入式主控器作为机器人的运算层,一方面作为控制上位机,可以通过串口与下位机伺服控制系统通信,从而完成机器人的运动控制;另一方面还提供了与遥控操作端或用户端的无线通信接口。本文设计的机器人控制系统可应用于日常生活、足球机器人以及其他科学探索领域。 1 系统组织架构与硬件设计 设计时考虑到机器人在体积、质量等方面的限制,以及要满足功耗低,实时性高,性能优越的特点,选择合适的软硬件结构及有效的控制模式是整个设计过程的关键。 1.1 系统总体架构 整个机器人控制系统由嵌入式主控制器、伺服控制模块、无线通信模块和传感检测模块组成。控制系统的总体架构如图1所示。 按功能划分,该控制系统分为上下两层。由实现任务管理、运动轨迹生成、定位的上层控制系统,以及完成机器人伺服控制、传感器信息采集的下层控制系统组成。上层控制系统是整个控制系统的核心控制层,它有两种控制实现方式:一种是独立运行模式,另一种是遥控或远程实时控制模式。独立运行模式有自己的运行参数,即上层控制系统根据激光雷达的信息传递到环境建模模块,产生环境地图并产生避障算法所需信息,控制器根据避障模块信息产生机器人本体速度和方向信息,传递到运动控制器。在运动控制底层程序定义了一系列程序,运动控制器通过解释上层控制系统传递过来的信息并执行相应程序,从而达到机器人控制的目的,实现实时避障。遥控器或远程实时控制模式是通过无线通信单元接收用户端或遥控端发出的命令,实现对机器人的实时控制。系统的控制实现方式如图2所示。 1.2 主控制模块 主控制模块采用SAMSUNG公司16/32位RISC处理器S3C4480作为控制器。S3C4480功耗低,有多种电源供电方式,有多种外部存储器访问,新的总线体系结构(SAMBA),速度可达132 MHz。主控模块使用Hynix公司的HY57V281620(SDRAM)以及SAM-SUNG公司的Nand-Flash芯片K9F2808U作为存储器。为了增大数据吞吐能力,选取了2片SDRAM构成32位地址宽度。S3C4480使用ARM7TDMI核,它满足μC/OS-Ⅱ正常运行的所有条件,设计时S3C4480移入μC/OS-Ⅱ操作系统,将加快处理器的应用和开发,而且还能提高系统的实时性。通过将系统的功能划分成按不同优先级调度的任务,实现对机器人的多任务控制,主控制模块中的路径规划任务采用栅格法。 1.3 激光雷达测距模块 激光雷达是一种工作在从红外线到紫外光谱段的雷达系统,相对于超声波、红外、摄像头等其他传感测距方法,激光雷达具有探测距离远,测量精度高,价格相对适中等优点。在本设计中使用德国施克公司的LMS291激光测量系统,基于飞行时间测量原理,180°扫描角度,可以设置三个保护区域,具有滤波功能,以消除障碍检测过程中激光雷达的测距噪声干扰。 LMS291激光雷达通过旋转镜面向各个方向发射脉冲激光,并由LMS291接收器接收反射光线。该激光雷达响应时间可固定为13 ms,发射角为几mrad的激光脉冲,通过测量发射脉冲与反射脉冲之间的时间延迟,并乘以光速,就可以测得障碍物的距离。时间测量通过图3所示的脉冲填充法求出。 如果计数值为N,则t=N△T=N/f,从而可得L=ct/2=cN/(2f),其中,f为时钟脉冲。 LMS291激光测量系统提供RS 232数据接口,本设计主控制器采用的是S3C44B0,由于它的LVTTL电路所定义的高、低电平信号为正逻辑,而RS 232标准采用负逻辑方式,两者间通信要进行电平转换,在设计时系统采用RS 232电平转换芯片MAX232ACPE实现串口的通信。 1.4 无线通信模块 无线通信模块利用从前端RF接收到的遥控端或用户端的信息通过串口发送到机器人,也可将机器人的信息通过无线通信模块发送出去。前端RF使用Chip-con公司生产的CC2420芯片,无线通信模块采用的微控制器为Microchip公司的PIC18LF4620。CC2420与PIC18LF4620都使用3.3 V作为工作电压,可以降低功耗,CC2420只需通过SI,SO,SCLK,CSn与PIC18LF4620的SPI接口进行连接。本设计中使用PIC18LF4620的RC6,RC7引脚作为RS 232的数据发送端与数据接收端。CC2420是一款较为通用的符合IEEE802.15.4的2.4 GHz ZigBee收发芯片,该芯片在集成了PHY层和部分MAC层的同时,还提供了许多硬件支持。 1.5 伺服控制模块 运动控制模块通过RS 232与主控制模块连接,主控制模块通过串行总线将期望速度、方向信息传送至运动控制器,运动控制器将信息处理后作为运动控制算法的输入量,运动控制算法得到以PWM形式表示的电机控制信息。为判断电机转速及运转方向,安装在电机上的光电编码器提供相位相差90°的两个通道的光码脉冲输出,光电编码器产生的两脉冲送入DSP的正交编码脉冲单元的QEP1,QEP2引脚,通过DSP的比较单元CAP1,CAP2捕捉,然后经译码单元产生内部4倍频后的脉冲信号CLK以及转向信号,将脉冲信号送入选定的计数器进行计数,计数方向由转向信号决定,通过读取选定通用定时器的计数值、脉冲数、计数方向可得到电机的转速、行程及方向为伺服控制提供反馈输入。没计使用TI公司的TMS320F2812作为控制驱动模块的控制器,该芯片产生的PWM信号并不能够直接驱动电机的执行,设计时使用TI公司的直流电机驱动芯片SN7S4410将PWM转换成可驱动电机的驱动信号。图4为移动机器人运动控制系统的原理图。 图4中电流传感器为霍尔元件电流传感器,将采集到的电机电流信息送入A/D转换接口,从而整个运动控制系统形成双闭环控制系统。运动控制器中运动控制算法采用PID算法,设定允许的误差为e0,设定如下关系: 当| e(k)|≤e0时,控制器不起作用; 当| e(k)|>e0时,可以得到控制器的输出为: PWM信号的宽度由时间管理器中定时器的周期寄存器和与该定时器相关的比较寄存器决定,经过PID处理后的控制器输出u(k)为脉冲的占空比,然后写入选定定时器的比较寄存器,比较寄存器与周期寄存器的比值即为PWM波形的占空比,从而实现电机转速的控制。 2 软件设计 该机器人控制系统的软件设计包括主控制模块、DSP运动控制器算法程序、PIC18LF4620的程序设计。PIC18LF4620的程序设计在这里不做介绍。 2.1 主控制模块程序设计 主控制模块软件设计是在μC/OS-Ⅱ平台上设计各硬件的驱动程序,创建和启动各项任务,创建信号量、消息邮箱、消息队列完成各任务间的通信。 针对S3C4480的硬件资源和编译器特性,移植时要对μC/OS一Ⅱ的三个源文件做修改: (1)OS_CPU.H头文件与编译器相关的数据类型重新修改; (2)OS_CPU_ A.S文件中修改处理器相关的4个汇编函数; (3)OS_ CPU.C文件中编写初始化任务的堆栈函数。 μC/OS-Ⅱ中程序是从main()函数开始执行,程序启动后跳转至主程序运行,调用ARMInit()初始化ARM系统,包括建立相关参数和变量,配置ARM处理器中断端口、设置中断并初始化各器件,然后调用OSInit()初始化μC/OS-Ⅱ操作系统,将操作系统的初始化与硬件的初始化分开来使得思路更清晰,便于调试。由于各任务之间要通过创建信号量、消息邮箱、消息队列来完成通信,该操作通过调用OSSemCreate(),OSMboxCreate(),OSQCreate()函数来完成,然后调用OSTaskCreate(void(*task)(void*pd),void*pda-ta,OS_STK*ptos,INT8U prio)函数创建各任务完成系统控制。最后调用函数OSStlart(),μC/OS-Ⅱ开始运行,执行任务。本系统设计时主要完成的任务有无线通信任务、命令解释任务、激光雷达信息处理任务。 2.2 伺服控制模块程序设计 伺服控制模块利用高速的DSP运动控制器与反馈信号组成闭环控制系统,DSP发送PWM波与方向信号控制直流电机的转速,通过速度反馈,DSP可实时读取当前速度,利用DSP中的控制程序根据速度读数控制PWM的占空比,从而实现闭环控制。主程序流程图如图5所示。 在DSP的事件管理器中,将其中一个定时器设定一个中断周期,每当定时器产生中断时,调用中断处理子程序获得电机的反馈速度。 3 结 语 根据新型激光雷达跟踪测量理论,开发研制了基于μC/OS-Ⅱ的机器人实时控制系统。该控制系统已成功用于实验室自主研制开发的足球机器人。性能测试表明,该机器人控制系统能够快速及时跟踪定位目标,并且能够通过无线通信模块与遥控端进行通信,完成指定操作指令。该控制系统采用的控制决策算法为PID,今后将致力于研究采用更为先进的算法。

    时间:2021-04-15 关键词: 机器人 处理器 嵌入式 控制系统 S3C4480

  • 基于RTX51嵌入式实时操作系统实现PBJ-1嵌入式控制系统的设计

    基于RTX51嵌入式实时操作系统实现PBJ-1嵌入式控制系统的设计

    排爆机器人(EOD robot)是一种遥操作地面移动机器人,操作机主体一般是由一个机械手和一个可移动平台组成,主要用于拆除疑似爆炸物品,以减少作业现场人员伤亡,是军警部门必须装备的设施。目前国际上主要流行美国Remotec公司的Andros系列排爆机器人、法国Cybernetics公司研制的TRS200中型排爆机器人等。但是国外的排爆机器人价格过高,出现故障后维修特别不方便。因此国家863专家组已经将高性能排爆机器人的研发及国产化列入了重点支持的课题。 由于种种原因,目前的排爆机器人很多只采用PLC实现点动控制,功能有限且操作性较差。研究高性能控制器成为排爆、消防等各种遥操作地面移动机器人的共同课题。利用先进的嵌入式系统技术可以较好地解决这类问题。 本文概述了上海交通大学机器人研究所研制的新型遥控移动式排爆机器人PBJ-1的嵌入式控制系统(如图1所示),主要叙述基于RTX51嵌入式实时操作系统(RTOS)开发排爆机器人PBJ-1嵌入式控制系统固件的情况。利用嵌入式系统技术开发适合排爆等各类遥控地面移动机器人使用的嵌入式控制系统能够解决上述种种矛盾。 1 PBJ-1功能介绍 目前国际上比较流行的排爆机器人,都需要由经过专门培训的操作人员通过操作一组分别控制机械臂上各个关节驱动电机的按键控制,操作很不方便。操作人员需要根据现场的状况,判断出需要机械手执行的动作,再经过大脑的转换,手工控制机械臂各个关节顺序动作,使机械手爪拟合出一条空间轨迹以完成作业,大大降低了工作效率。这类排爆机器人一般都需要大量的摄像机,随时显示爆炸物相对机械手爪的位置,以便操作人员决定下一步动作。 新型排爆机器人PBJ-1为了使操作人员操作更加方便,在嵌入式控制器中嵌入了机器人运动学运算,能够实现机械臂的自主联动控制。操作者只要通过观看控制箱上面的显示器,直接操纵控制器命令机器人水平前、后或垂直上、下运动,机械臂可以实时进行机器人运动学运算和分解运动控制,控制机械手爪完成空间的直线拟合运动。这种操作方式略过了操作人员在大脑中进行动作转换的步骤,大大方便了排爆这一高危险性作业现场的作业。 为了方便现场操作,在其嵌入式控制器系统中还加入了机器人的一些半自主动作功能。例如当机器人完成作业后机械臂可以自动折叠归位;机械臂可以自动进入作业最佳操作姿态;当操作不当时,控制器可以自主取消操作人员发送的命令,以避免机械臂与车体之间的干涉碰撞等。 为防止爆炸物被恐怖分子遥控引爆,爆炸物品的拆除现场一般都要做电磁屏蔽处理,不能使用无线遥控型机器人,只能采用有缆遥操作移动机器人。由于爆炸物品的拆除作业危险性很大,所以对排爆机器人的有线通讯系统的可靠性要求很高。PBJ-1是通过RS-485协议实现相互之间远距离、高速、高可靠性通讯。 操作人员可以通过上位控制箱里的液晶显示器监视作业现场的状态;通过操作各种动作按钮及操纵杆控制机器人完成各种作业。控制箱有六组4位数显LED,分别显示机器人型号(PBJ1)、通讯状态(run或Err)、大小臂关节角、机器人及车体运动速度、机器人电源实时电压。这些都保证了操作人员可以全面了解机器人具体运行状态,顺利完成作业。 2 PBJ-1嵌入式控制系统设计 遥操作机器人由于工作于非结构环境中,实际期望运动轨迹未知,所以需要根据操作者的实时操作情况进行动态实时的目标位置生成及轨迹规划,并完成相应的运动控制。 由于这台新型排爆机器人功能增强,下位机微控制器需要实时完成机器人运动学及分解运动控制解算,并驱动各个接口器件实时控制机器人运动,还要保证上、下位机之间的正常通讯连接,及时、迅速、高可靠性地响应上位机经过处理的数据并且上传机器人本体的各种状态信息,负担很重。因此如何合理地进行系统固件程序设计成为决定该机器人实际运行效果的关键。 要实现上面所述的功能,微控制器的应用必须能够同时进行多任务或工作的执行。对此,传统的基于单任务顺序循环机制的程序设计方法难以胜任,如图2所示。因此,需要找到一种新的合适的控制器设计方法。由于微控制器系统功能通常可以分解为多个相对独立的模块,将这些模块理解为任务,从而可以引入多任务机制进行管理。引入多任务机制后,可以有效地改善程序结构,满足应用系统复杂的定时要求。在多任务机制下,CPU的运行时间被划分成许多小的时间片,由某种调度算法按不同的优先级别分配给不同的任务。多个任务分别在各自的时间片内访问CPU,从而产生了微观上轮流运行、宏观上并行运行的多任务效果,如图3所示。 在多任务嵌入式系统中,合理的任务调度必不可少。单纯通过提高处理器速度无法达到目的,这样就要求嵌入式系统的软件必须具有多任务调度能力。因此必须基于多任务实时操作系统进行嵌入式系统固件开发。 实时操作系统的首要任务是调度一切可利用的资源完成实时控制任务;其次才着眼于提高计算机系统的使用效率。其重要特点是通过任务调度对重要事件在规定的时间内作出正确的响应。实时操作系统既能保证对外界的信息以足够快的速度进行相应处理,又能并行运行多个任务,具有实时性和并行性的特点,因此能很好地完成对多个信息的实时测量、处理并进行相应的多个实时控制。 PBJ-1上下位机嵌入式控制器都是以业界经典51内核增强型单片机AT89C55WD为核心;基于嵌入式实时操作系统RTX51Tiny开发固件程序。通过提供必不可少的系统服务,如信号量管理、消息队列、延时等,实时内核使CPU的利用更为有效。 2.1 RTX51简介 RTX51是德国Keil公司开发的一种应用于MCS51系列单片机功能强大的、可用于目前世界上所有由Intel 8051标准内核派生出的350多种增强微控制器的实时操作系统。使用RTX51可实现程序按时间片轮转和抢先的任务调度,并且支持事件和信号驱动。 RTX51有两个版本:RTX51Full和RTX51Tiny。RTX51Full允许4个优先权任务的循环和切换,并且能够并行地利用中断功能。RTX51Full可以从内存池中申请和释放内存,同时可以强制一个任务停止执行等待一个中断,或者是其它中断传来的信号量或者消息。RTX51Tiny短小精悍,是RTX51Full的一个子集,只占用900字节ROM、7字节DATA型及3倍于任务数量的IDATA型RAM空间,可以很容易地运行在没有扩展外部存储器的单片机系统上。使用RTX51Tiny的程序可以访问外部存储器,允许循环任务切换,并且支持信号传递,还能并行地利用中断功能。RTX51Tiny 允许“准并行”同时执行几个任务。每一个任务在预先定义好的时间片内得以执行。时间到使正在执行的任务挂起,并使另一个任务开始执行。最新的RTX51Tiny2.0重新调整了内核结构,使用更灵活、执行更快、占用的资源更少,另外还增加了几个新的特性。 RTX51Tiny内核完全集成在Keil C51编译器中,以系统函数调用的方式运行,因此可以很容易地使用Keil C51语言编写和编译一个多任务程序,并嵌入到实际应用系统中。内核主要提供以下函数供应用程序引用,见表1。 RTX51Tiny的用户任务具有表2所列的几个状态,它们如图4所示进行切换。 为了保证任务在执行顺序上的协调,必须采用同步机制。内核用以下事件进行任务间的通信和同步: (1)SIGNAL:用于任务之间通讯的位,可以用系统函数进行置位或清除。如果一个任务调用了os_wait函数等待SIGNAL而SIGNAL未置位,则该任务被挂起直到SIGNAL置位,才返回到READY状态,并可被再次执行。 (2)TIMEOUT:由os_wait函数开始的时间延时,其持续时间可由定时节拍数确定。带有TIMEOUT值调用os_wait函数的任务将被挂起,直到延时结束,才返回到READY状态,并可被再次执行。 (3)INTERVAL:由os_wait函数开始的时间间隔,其持续时间可由定时节拍数确定。带有INTERVAL值调用os_wait函数的任务将被挂起,直到间隔时间结束,才返回到READY状态,并可被再次执行。与TIMEOUT不同的是,任务的节拍计数器不复位。 RTX51Tiny采用微控制器(51)内部定时器T0来产生定时节拍,各任务只在各自分配的定时节拍数(时间片)内执行。当时间片用完后,切换至下一任务运行,因此各任务是并发执行的。RTX51Tiny调度程序定义这些任务按照下面的规则运行: (1)如果出现以下情况,当前运行任务中断: ①任务调用os_wait函数并且指定事件没有发生。 ②任务运行时间超过定义的时间片轮转超时时间。 (2)如果出现以下情况,则开始另一个任务: ①没有其他的任务运行。 ②将要开始的任务处READY或TIME-OUT状态。 图4 RTX51任务切换图 2.2 嵌入式操作系统的特殊问题处理 在RTX51 下进行多任务编程与传统的顺序循环单任务编程相比有以下几个值得注意的不同点: (1)多任务编程CPU 是轮流执行每个任务,可以将每个任务设计成死循环的模式,不断重复地进行数据计算或者访问硬件,不会影响别的任务的执行。当一个任务的数据计算完成后,可以通过os_wait 函数将CPU 交出执行别的任务。而单任务模式却独占了所有的CPU 资源,时常要担心是否执行时间太长而不能及时响应外部的异步事件。 (2)多任务编程有一个缺点,即资源冲突和重入问题。所谓资源冲突就是任务A在访问某个资源时,恰好发生了任务切换,任务B也访问这个资源,且改变了它的状态,这样当再次执行任务A时就可能发生冲突或带来不确定性。而所谓重入是指假设任务A在运行某个函数,发生任务切换后,任务B也运行这个函数,这样就会破坏任务A执行这个函数的现场,从而可能导致任务A执行函数时结果不正确。这种问题尤其容易出现在串行接口器件的操作中,例如串口、串行的A/D、D/A器件等。 在本嵌入式机器人控制器开发过程中,采用这种处理办法:将对每个独立的硬件(例如串行通讯)进行操作的驱动程序段放在一个任务中,也就是说要想对某个设备资源进行操作,只有依靠执行相应的任务来实现。这样无论何时切换任务,都不会对任何独立的“外设”造成影响。这样做彻底避免了资源冲突和重入问题而且利于系统维护与升级。各个任务之间要实现通信,可以调用os_send_signal函数及全局变量。 在嵌入式控制系统开发中借鉴了Windows消息驱动的思想,使部分不需要始终执行的任务处于等待信号状态,这样它们不会占用资源。只有当需要进行相应处理时通过需要它们运行的任务发送给它们SIGNAL,它们才会进入RUNNING任务队列中,得到执行。相关的系统函数为: os_wait (K_SIG, 0, 0); //等待信号 os_send_signal (Task_ID);//向Task_ID任务发送一个信号。 这样的处理,可以使微控制器在有限的资源下集中精力处理好耗时且重要的事情。 2.3 排爆机器人嵌入式控制系统固件开发 上位机嵌入式控制器固件结构如图5所示。根据控制器要完成作业的独立性分割成几个任务片。图5表示了各任务之间的关系、与外设连接关系。整个系统被区分成三个层次。 减少上、下位机之间数据交换的次数及数据量有利于减少下位控制器中断机器人的运动控制转入通讯协议处理的几率,可以提高运动控制的质量。所以PBJ-1的通讯部分固件程序设计没有采用传统的定时向下位机传送输入设备的状态这种高通讯负担的方法,而是基于消息驱动的思想。通讯任务依靠输入设备检测任务执行的结果来决定是否激活、进入消息队列以实现控制器之间的通讯。这样只有当操作者实际改变了输入设备的状态,上位机才向下位机发送相应的信息。利用消息驱动思想来开发通讯程序十分方便、可靠,并且大大减少了通讯线路的负担。为了保证数据传输的高可靠性,每次数据交换都先经过握手以确保无误。下位机嵌入式控制器固件结构如图6所示。 图5 上位机嵌入式控制系统固件结构 图6 下位机嵌入式控制系统固件结构 由于有些任务不需要一直执行,例如机器人需要响应上位机的指令完成继电器的切换等,也将利用os_wait函数处理,使它们平时不进入RUNNING任务队列中,减少资源浪费。在下位机串口中断中利用isr_send_signal向该任务发送信号激活该任务,使得该要求得到执行。具体调用方法如下: isr_send_signal(Task_ID); //从一个中断发送一个信号到Task_ID任务。 通过Windows消息驱动的思想和RTX51 Tiny实时操作系统的配合,合理分配了系统的资源。下位机控制器“集中精力” 完成机器人运动学解算及分解运动控制运算这些相当耗时的任务,实时控制机械臂运动。 在微控制器固件开发中嵌入操作系统还大大提高了系统的稳定性。即使某个外设或任务出现故障,与之无关的任务一般不会受到影响,不像传统的顺序循环机制的程序设计方法中如果某一环节出现问题会立刻造成整个系统的崩溃。 实际整个系统的上下位机微控制器都是仅仅利用运行于22.1184MHz频率下的AT89C55WD 就很好地达到了预期目标。该系统在随意频繁地分别开关上下位机电源、受到较强电磁干扰、大功率电机频繁启动、制动造成系统电源电压波动较大等苛刻的运行测试中均表现出了非常高的稳定性与数据传输准确性。整个系统在运行中即使出现了通讯失败(人为切断通讯线路或部分电源),当故障排除后,上、下位机可以迅速自动恢复正常的通讯状态没有出现误动作。 为新型排爆机器人PBJ-1先后开发了两套控制器固件程序,采用完全一样的硬件平台。一套是基于传统的顺序循环机制,开始效果不理想,后来借鉴消息驱动思想改进程序架构才满足了要求。开发过程中花费了不少时间来调试。另一套就是本文所述的基于RTX51 Tiny嵌入式实时操作系统开发的,实际运行效果相当好,但是花费的时间很少,而且很容易增加新的功能。 实践表明, 在系统复杂、对实时性和精度要求比较严格,并且需要并行处理的任务较多的运动控制系统中,使用RTX51Tiny是一个较好的解决办法。此外,使用RTX51Tiny实时操作系统,会加快嵌入式控制系统的开发速度,降低软件编写的复杂度,提高产品的开发效率。维护和功能扩展都非常方便。

    时间:2021-04-15 关键词: 操作系统 嵌入式 控制系统 上位机 下位机

  • 4.3寸TFT的MSP430程序

    4.3寸TFT的MSP430程序

    一、TFT简介 TFT(触摸屏)Thin Film Transistor (薄膜场效应晶体管),是指液晶显示器上的每一液晶象素点都是由集成在其后的薄膜晶体管来驱动,从而可以做到高速度高亮度高对比度显示屏幕信息, TFT触摸屏薄膜晶体管液晶显示器,是多数液晶显示器的一种在众多的平板显示器激烈竞争中,TFT触摸屏能够脱颖而出,成为新一代的主流显示器决不是偶然的,是人类科技发展和思维模式发展的必然。液晶先后避开了困难的发光问题,利用液晶作为光阀的优良特性把发光显示器件分解成两部分,即光源和对光源的控制。作为光源,无论从发光效率、全彩色,还是寿命,都已取得了辉煌的成果,而且还在不断深化之中。LCD发明以来,背光源在不断地进步,由单色到彩色,由厚到薄,由侧置荧光灯式到平板荧光灯式。在发光光源方面取得的最新成果都会为TFT触摸屏提供新的背光源。随着光源科技的进步,会有更新的更好的光源出现并为TFT触摸屏所应用。余下的就是对光源的控制,把半导体大规模集成电路的技术和工艺移植过来,研制成功了薄膜晶体管(TFT)生产工艺,实现了对液晶光阀的矩阵寻址控制,解决了液晶显示器的光阀和控制器的配合,从而使液晶显示的优势得以实现。 应用领域:要应用于计算机、视频终端、通讯及仪器仪表等行业。主要应用领域有笔记本电脑、台式计算机监视器、工作站、工业监视器、全球卫星定位系统(GPS)、个人数据处理、游戏机、可视电话、便携式VCD、DVD及其它一些便携装置。 二、TFT基本驱动 4.3寸TFT(Thin-Film Transistor)的读写时序和1.8、2.4大小的几乎一样(毋宁说就是一样)。 数据写入模式可在16位和8位数据位选择。 MSP430使用首先配置引脚的输入输出方向,进而分配引脚。 时序控制引脚的分配 LCD_RS_H时数据写入,LCD_RS_L时命令写入。 void LCD_Writ_Bus(unsigned int VH,unsigned int VL) //并行数据写入函数 { LCD_CMDOUT; LCD_DataH_Out; LCD_DataL_Out; LCD_CS_L; //LCD_RS_H; //RS=1;高写数据 LCD_WR_L; DataH_OUT = VH; DataL_OUT = VL; LCD_WR_H; LCD_CS_H; } void LCD_WR_DATA8(unsigned int VH,unsigned int VL) //发送数据-8位参数 { LCD_RS_H; //RS=1;高写数据 LCD_Writ_Bus(VH,VL); } void LCD_WR_Data(unsigned int da) { LCD_RS_H; //RS=1;高写数据 LCD_Writ_Bus(da>>8,da); } void LCD_WR_REG(unsigned int da) { LCD_RS_L; //RS=0;低写命令 LCD_Writ_Bus(da>>8,da); } LCD驱动芯片采用SSD1960,对照其Datasheet操作相关寄存器。 //初始化函数 void TFT_Init(void) { LCD_WR_REG(0x00E2); //PLL multiplier, set PLL clock to 120M LCD_WR_Data(0x0023); //N=0x36 for 6.5M, 0x23 for 10M crystal LCD_WR_Data(0x0002); LCD_WR_Data(0x0004); LCD_WR_REG(0x00E0); //PLL enable LCD_WR_Data(0x0001); delay_time(1); LCD_WR_REG(0x00E0); LCD_WR_Data(0x0003); delay_time(5); LCD_WR_REG(0x0001); // software reset delay_time(5); LCD_WR_REG(0x00E6); //PLL setting for PCLK, depends on resolution LCD_WR_Data(0x0001); LCD_WR_Data(0x0033); LCD_WR_Data(0x0032); LCD_WR_REG(0x00B0); //LCD SPECIFICATION LCD_WR_Data(0x0018); LCD_WR_Data(0x0000); LCD_WR_Data((HDP>>8)&0X00FF); //Set HDP LCD_WR_Data(HDP&0X00FF); LCD_WR_Data((VDP>>8)&0X00FF); //Set VDP LCD_WR_Data(VDP&0X00FF); LCD_WR_Data(0x0000); LCD_WR_REG(0x00B4); //HSYNC LCD_WR_Data((HT>>8)&0X00FF); //Set HT LCD_WR_Data(HT&0X00FF); LCD_WR_Data((HPS>>8)&0X00FF); //Set HPS LCD_WR_Data(HPS&0X00FF); LCD_WR_Data(HPW); //Set HPW LCD_WR_Data((LPS>>8)&0X00FF); //Set HPS LCD_WR_Data(LPS&0X00FF); LCD_WR_Data(0x0000); LCD_WR_REG(0x00B6); //VSYNC LCD_WR_Data((VT>>8)&0X00FF); //Set VT LCD_WR_Data(VT&0X00FF); LCD_WR_Data((VPS>>8)&0X00FF); //Set VPS LCD_WR_Data(VPS&0X00FF); LCD_WR_Data(VPW); //Set VPW LCD_WR_Data((FPS>>8)&0X00FF); //Set FPS LCD_WR_Data(FPS&0X00FF); LCD_WR_REG(0x00F0); //pixel data interface LCD_WR_Data(0x0003); LCD_WR_REG(0x0021); //进入图形颜色翻转模式 LCD_WR_REG(0x00BC); //重要Set the image post processor LCD_WR_Data(0x0080); //对比度Set the contrast value LCD_WR_Data(0x0080); //亮度Set the brightness value LCD_WR_Data(0x0080); //饱和度值Set the saturation value LCD_WR_Data(0x0001); //处理机允许Post Processor Enable delay_time(5); TFT_CLEAR(0X07FF); //GBLUE LCD_WR_REG(0x0029); //display on } void TFT_CLEAR(uint color) { unsigned int l=480,w; LCD_WR_REG(0x002A); LCD_WR_Data(0); LCD_WR_Data(0); LCD_WR_Data(HDP>>8); LCD_WR_Data(HDP&0x00ff); LCD_WR_REG(0x002B); LCD_WR_Data(0); LCD_WR_Data(0); LCD_WR_Data(VDP>>8); LCD_WR_Data(VDP&0x00ff); LCD_WR_REG(0x002C); while(l--) { for(w=0;w<272;w++) LCD_WR_Data(color); } }

    时间:2021-04-15 关键词: 驱动 MSP430 3寸TFT

  • 单片机在GPS和CDMA计时系统中的设计

    单片机在GPS和CDMA计时系统中的设计

    摘要介绍了一种基于MSP430单片机的GPS和CDMA双接收计时系统的设计思路与方法,并给出了系统的硬件电路和软件流程。该系统采用GPS和CDMA时钟信号,其可以自动调整时间,同时还拥有多方位保障时间的精确性、一致性、高可靠性及环境适应性强的优势。 在可靠性、扩展性、控制功能以及体积、功耗等方面比其他电子产品具有优越性。在天文、地震台、航空航天等对时间精度较高的场合,以及国防、通信、电力、交通等要求高精度时间同步的领域,得到广泛应用。 1 系统硬件设计方案 1.1 系统总体设计 基于MSP430单片机的GPS和CDMA双接收计时系统,是传统钟表计时技术与现代时频、微电子、通讯、计算机等多项技术的结合,通过接收不同形式的时间码,经内置微处理器解码处理,自动校准计时器走时,使该系统显示时间与标准时间自动保持精确同步。除保留传统机械时钟计时特点外,还增加了LCD数字显示,双显示方式。接收GPS、CDMA信号,实现双系统联合精确定时,在接收到精确的时码后,经数据处理器处理,即可自动校正时钟的走时误差,使每只时钟的走时均受统一精确的时码控制,从而实现了高精度计量时间的一致性,同时也可手动校时、接收时间信号,系统硬件框图如图1所示。 图1 系统硬件框图 1.2 系统各部分的硬件设计 1.2.1 MSP430 MCU MSP430F5xx是德州仪器仪表推出的实现超低功耗MSP430 MCU系列产品。该系列针对峰值高达25 MHz的产品,实现业界最低的功耗,拥有更高的闪存与RAM存储器存储容量,以及射频(RF)、USB、加密和LCD接口等集成外设。MSP430F5xx MCU的工作功耗与待机功耗仅为160μA/Hz与1.5μA,系统能以较小功耗运行的同时可执行高强度的任务。可充分发挥高达25 MHz峰值执行性能,同时确保功耗仅为160μA/HMz。MCU采用16位精简指令,一个时钟周期可执行一条指令,运行速度可达25~30 MI·s-1,而传统51单片机6个或12个时钟周期可执行一条指令。以上特点确保了其可编制出高效率的源程序,用以满足电池供电超低功耗要求。 1.2.2 GPS接收模块 GPS模块是应用较广的一种导航、定位和定时的多功能系统,具有全天候、高精度、自动测量以及体积小、功耗低的特点,且技术成熟、价格低廉。 GPS模块为系统提供GPS定时、定位信息,设计采用u-blox公司的MAX-6Q,其具有以下特点:(1)精度高,抗干扰能力强。(2)启动时间短,冷启动只需26 s,热启动只需1 s。(3)串行接口有1UART、1DDC,可方便与MSP430F5xx的UART模块通信。(4)体积小,电压为3.3 V,与MSP430F5xx相同。(5)输出信息采用标准的NEMA-0183协议。 1.2.3 CDMA接收模块 CDMA无线通信模块从CDMA基站上获取标准的时间信号,CDMA校时系统信号稳定,不易受电源、外界无线电干扰,便于部署在任何有CDMA信号的地方。针对以上特性,在室内无卫星信号或GPS信号难于接收的地点使用,恰好解决了常见的GPS模块局限性问题。 CDMA接收模块采用华为MC323模块,MC323将基带、RF收发器、电源管理模块单元、功率放大器集成,功能全面、应用广泛。其电路框图如图2所示。 图2 MC323电路框图 2 系统软件设计方案 系统的软件部分主要负责设置GPS模块与MCU之间的串口通信1、CDMA模块与MCU之间的串口通信2、时间的显示及人机接口。其主要包括初始化、串口通信、数据处理、故障提示、显示、键盘处理及电源管理等部分,其中初始化包括MSP430中各种寄存器的配置、串口相关参数配置以及外围电路的初始化等。 2.1 系统软件双接收的整体方案 系统采用GPS和CDMA双模式接收,同时可定时进行自动接收,也可通过外部接收按键进行强制接收。软件优先接收GPS模块的数据信息,当GPS数据无效或无法采集到信号时,再接收CDMA数据。若GPS和CDMA接收的数据有效,则更新数据;若无效,则数据保持。系统双接收处理流程如图3所示。 图3 系统双接收处理流程图 2.2 GPS模块接收方案 GPS模块MAX-6Q通信采用串口通信1,包括数据发送、接收、校验、通信障碍提示等,数据处理主要有GPS接收数据的解码、存储和数据刷新等。MAX-6Q的数据输出为NMEA-0183格式,最大更新速率5 Hz,为保证数据传输的可靠性与实时性,并提高单片机的利用率,文中采用中断方式而非查询方式。 在中断处理程序中,将接收到的GPS数据放入数组中,通过读取数据包的前7 bit,可判断该数据包格式,系统只处理了NEMA中GPGGA和GPZDA两种格式的消息,并定义了两种相应的处理函数,其各函数功能如下: GPZDA()函数:提出UTC日期和时间。 GPRMC()函数:提出UTC日期、时间、经度和纬度信息。 通过GPS数据处理,误码的判断,刷新数据显示,其GPS处理流程如图4所示。 2.3 CDMA模块接收方案 CDMA模块MC323通信采用串口通信2,数据处理主要是CDMA接收数据的解码、存储和数据刷新等。 CDMA接收打开,CDMA模块进行初始化。MSP430F5xx打开串口2向CDMA模块MC323发出查询指令“AT^TIME”,若查询时间超过10 min,则自动退出查询。CDMA模块MC323收到“AT^TIME”查询指令后,向单片机返回时间信息,而单片机将对时间信息进行分析处理并将处理后的时间信息进行存储和更新,CDMA处理流程如图5所示。 3 结束语 根据GPS和CDMA的不同特点,采用两种接收模式联合定时,不仅在GPS接收正常时,能保证时间的高精度、一致性,且在GPS失效或室内GPS信号接收困难时,通过CDMA接收,同样保障了时间的精确性和一致性,且还具有可靠性高、环境适应性强的特点。本单片机采用MSP430,其不仅功耗低,且处理能力强,模拟技术性能高及片上外围技术丰富,故满足了低功耗高性能的要求。此外,性能还可满足高精度计时系统对时间精度性和实时性的要求,本设计不论在室外或室内均具有良好的接收、自动智能授时能力。其既可满足精度要求较高的天文、航空航天等系统,又可满足普通民用使用,还可应变特殊情况下的使用需求,因此拥有良好的应用前景。

    时间:2021-04-15 关键词: CDMA GPS 单片机 计时系统

  • 基于MSP430单片机的称重式液位仪的设计

    基于MSP430单片机的称重式液位仪的设计

    1 引言 液位测控仪是属于智能化仪器仪表的一种(指采用了微处理器的仪器仪表),其发展始于70年代[1]。它是一种集测量与控制于一体的智能化产品,适用于石油化工、冶金、电力、制药、环保等行业中各种介质的液位测量。本仪器主要针对罐体内液体进行测量并能计算其重量,适用于对各种液态物质进行静态和动态测量与监控,并具有超限报警和主-从站模式联网功能。 2 系统设计方案 2.1 液位传感器的选择 一般情况下在液位测量中所采用的传感器有:压力传感器、超声波传感器、浮子式传感器等,由于系统设计中要求在测量液位的同时还要实现液体重量的检测。在液罐内,液体重量P的检测可直接利用计算得到,即P=H*S*ρ(H为液体高度CM;S为圆面积M2;ρ为液体比重),因此只有提高液位测试的分辨率才能保证液体重量测试的精度,本系统中液位测试分辨率为1cm。另外,考虑到压力传感器接口电路相对采用超声波传感器的接口电路要简单,因此确定采用压力传感器。 2.2 MSP430单片机 MSP430单片机为低功耗16位单片机,具有典型的SOC特点,集成大量外设。尤其是其内部集成的波特率微调器,可以使MCU在不低于32768HZ的任意晶振(但不能超过MCU对晶振要求的上限)下工作时,其通信波特率的选择可不受波特率因子不能带有小数的限制,即:在波特率的允许范围内可使用任意频率的晶振[2] [3]。另外,由于MSP430 MCU内部集成了温度传感器,可以很方便的实现对测液位所用的压力传感器的温度补偿。而且MSP430系列单片机针对不同的应用而由各种不同的模块组成,这些微控制器被设计为可用电池工作,并且可以使用很长时间。 2.3 模拟信号转换技术 由于系统的执行部件为电磁阀,易产生电磁干扰,因此为能够可靠的工作必须要使系统具有较高的抗干扰性。 一种方法是直接利用MCU内部的A/D转换器,其特点是:无须外围电路,采样速度快,但抗干扰能力较差[4]。 另一种方法是使用V/F变换器来实现A/D转换。由于V/F变换是利用积分电容的电荷平衡原理实现电压频率转换,因此该方式稳定性好,分辨率高,信号线少,便于实现光电隔离以提高系统的抗干扰性,但转换速度相对较慢。 考虑到压力信号是一个缓变信号,一般无须快速采样,为使系统具有较高的抗干扰性,根据分析对比,选择采用V/F变换器来实现对压力信号的处理,计算处理较简单,在测量精度方面也能达到使用要求,并且易于做到实时控制。 3 系统总体组成结构及工作原理 如图1所示,整个系统由单片机主机系统、传感器信号处理电路、液位控制电路、声光报警、键盘、液晶显示、电源模块和通信等模块组成。P1口作为系统的数据线,V/F转换电路的输出信号作为中断请求信号接至MCU的P2.4脚,P2.6和P2.7为执行部件电磁阀的控制信号,分别控制进液、出液电磁阀。声光报警电路的控制信号为P2.5。键盘接口电路通过P3.0,P3.1和P3.2接入MCU用来控制系统的6个按键。系统通过P3.0和P3.3输出信号给74HC245用做LCD汉字液晶显示器的数据接口,P3.0和P3.3用做LCD的控制信号。P3.4和P3.5为MCU的串行通信数据线,经由通信电路与从机连接,用来进行主站、从站之间的串行通信。系统的电源模块产生3.3V、+5V和-5V电压,分别为主机系统和传感器接口电路提供稳定的工作电压。 图1 系统总体构成图 本系统通过压力传感器进行液体压力的数据采集,经过V/F转换模块进行液位高度和液体重量的标定,实现高精度的测量。当容器内的液位值超过了设定值或警戒值时,系统自动启动报警电路进行声光提示报警。用户可以通过键盘设定液位的上、下限值和进液、出液量等参数,以便使容器内液位保持设定的液位值。系统采用大屏幕液晶汉字显示,可以显示出当前液位值、设定的液位上下限值、容器内当前液体重量和进液、出液阀门的状态等。主站控制8个从站中的任意一个,并完成主站和从站的同步通信,主站具有该系统的所有功能,并且可以对从站中的液位上下限值等进行设置,主站在巡回检测时,可以任意设定要查询的从站数目、从站号和从站容器中的液位高度。当主站、从站中的液位超过警戒限时,主站可以进行声光报警并能显示报警的从站号。同时从站也可以依据通信协议通过通讯模块将从站号、液位值和报警信号传送给主站,并且从站可以接受主站的控制信息并能自动执行,还可以自动报警和解除报警。系统中从站号可以任意设定。同时该系统还可以实时显示工作环境的温度和时间。 4 系统的主要硬件电路设计 4.1 V/F转换电路设计 如图2所示,输入电压经射随器UD1A从LM331的7脚输入,电阻RD7 可以抵消6脚的偏流影响,从而减小频率误差,为了减少LM331的增益误差和由RD10、RD11、CD2引起的偏差,RD13选用51K电阻CD1为滤波电容。当6脚和7脚的RC时间常数相匹配时,输入电压的阶跃变化将引起输出频率的阶跃变化,如果CD3比CD1大的多那么输入电压的阶跃变化可引起输出频率的瞬间停止,6脚的电阻和电容可以差生滞后效应,以获得良好的线性度。 图2 V/F转换电路原理图 4.2液位检测及控制电路 系统通过压力传感器进行数据信号采集,采集到的信号经过运算放大器进行信号放大。放大后的信号送入V/F进行压频转换,将其输出的频率信号作为中断请求信号接至MCU的P2.4脚,由MCU对其进行处理后,将其转换成液位值,并根据液位设定值和上、下限值控制相应的电磁阀,使容器内液位高度与设定值保持一致。为便于电路的调试和观察,每个电磁阀都设有工作状态指示灯,表明当前是出液阀还是进液阀正在工作。其控制电路见图3。 图3 液位测量及控制电路 4.3 声光报警电路设计 声光报警电路由三极管、发光二极管、电阻、电容、蜂鸣器等组成,当所测到的液位值超过所设定的警戒值时,单片机发出报警信号,当收到报警信号后发光二极管OUT被点亮、蜂鸣器发出声音,产生声光报警。 5 系统软件设计 系统的软件采用模块化结构设计,分为六大块即:系统初始化模块、LCD显示模块、按键识别及处理模块、液位检测及控制模块、主从站通信模块。时间、工作环境温度检测模块。 系统通过初始化模块设置显示缓冲区、堆栈指针、操作标志和工作寄存器、各I/O端口的方向、系统定时器模块、通信模块、以及系统中断设置等。键盘模块负责按键的识别和按键处理,当有按键动作时调用相应的按键处理子程序进行处理。可实现对进出的液体量和上、下报警限进行设置,也可利用按键对各电磁阀进行手动控制。当液位超过警戒限时,调用液位检测及控制模块进行相应的控制,以使相应的电磁阀动作。在自动检测和自动控制的同时,将相关数据和控制参数,通过通信模块发送给主站。各从站在进行检测和控制的同时也在不断的侦听主站是否有命令或数据发送过来,如果有则立即处理。 6 结论 本仪器可广泛应用于测量水、油、酸类、酒类、饮料等的液位高度。可根据设定的上下两个极限液位,自动控制进液和排液,并具有多台联网功能。本仪器工作性能稳定可靠,体积小,测量及控制准确灵敏,安装使用方便,功耗低。目前已在一家食品企业中投入使用。 创新点 采用的16位单片机MSP430具有高性能低功耗的特点,是取代8位51系列单片机的较好选择。而且测量方法非常简洁且精度高、测试范围较广,具备称重功能和主-从站模式联网功能。

    时间:2021-04-15 关键词: 单片机 MSP430 称重式液位仪

  • 基于MSP430的超低功耗空间定向测试仪设计

    基于MSP430的超低功耗空间定向测试仪设计

    0 引言 空间定向测试仪是一种应用非常广泛的电子测量仪器,尤其是伴随着微电子技术的发展,空间定向测试仪在车辆、舰船、飞行器等导航领域中的应用日趋成熟。本文所研究的空间定向测试技术主要是以MSP430单片机为基础的。因为MSP430系列单片机是一种16 位超低功耗、具有精简指令集(RISC)的混合信号处理器,它能针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上。因此,笔者研究了如何用MSP430单片机控制各模块的接口电路,并且能够很好地应用于实际测量当中。 1 空间定向测试各硬件接口的设计 本文主要研究的是基于MSP430 单片机的空间定向测试仪,该仪器的工作原理是将方位信息接收器接收到的数据传输给MSP430 单片机的可读存储器中,然后在经过输出端显示到液晶屏上。在这一过程中,我们需要设计一个硬件接口电路,连接信息接收器和液晶显示器,而MSP430 单片机的读写控制则需要通过语言编程来完成。 基于MSP430 单片机的空间定向测试仪设计的基本思想是利用MSP430 单片机操控方便、接口简单、体积小、低能耗以及低成本等优点,将其作为嵌入式系统以便扩展空间定向测试仪的功能。由于空间定向测试仪的信息接收模块接口电路较少,但是应用范围非常广泛,因此需要设计多接口电路联接显示器、单片机等。此外,为了提高空间定向测试仪的数据处理和应用能力,需要实现PC 机与空间定向测试仪的串行通信。实现良好的人机对话,操作简单以及友好界面,有人性化的输入能力和显示能力。因此,其硬件接口模块设计如图1 所示。 MSP430 单片机是空间定向测试仪的核心部位,它不仅可以对整个仪器的内部软件模块进行协调处理,而且还能够对收集到的各种数据信息进行分类整理,计算出相应的数值。加速传感器主要使用的是ADXL203,ADXL203 是完整的高精度、低功耗、单轴/ 双轴加速度计,提供经过信号调理的电压输出,所有功能均集成于一个单芯片IC 中。这些器件的满量程加速度测量范围为±1.7 g,既可以测量动态加速度,也可以测量静态加速度。基于MSP430 单片机的空间定向测试仪的整个信号电路是对传感器的输出信号进行放大和滤波,电路的晶振频率是411.0592MHz,波特率是4800,此时设波特率的初始值为FFFAH.标定数据库主要是由AT24C16 存储器构成,其低压和标准电压为Vcc=1.8V-5.5V,拥有2048×8(4k)的存储空间,2 线串行总线,斯密特触发,噪声抑制滤波输入。Bi 方向传输协议,100kHz(1.8V,2.5V,2.7V)和400kHz(5V)兼容传输速率。硬件数据写保护引脚,8 位页写模式,允许局部页写操作,器件内部写周期最大10ms,高可靠性,1 万次的写周期,100 年的保存时间。在LCD 显示屏方面主要根据LCD 的串/ 并行数据接收模式,如果是低电平采用的是串行模式,如果是高电平则采用并行模式,此外,液晶显示屏设计为中心对称可以正反显示,方便读取数值。键盘部分采用的则是16 键盘,4×4 阵列,从PB 口低4 位引出列线,PC 低四位引出行线,然后通过电阻接+5V 电压。键盘的电源键负责开关机的控制,显示模式选择键则是控制测试仪的空间定向信息,测量方式选择键用于不同情况下方位测量的相互切换。保持按键则是将测量结果保持在显示器上方面读取。为了降低空间定向测试仪的功耗,MSP430 单片机可以根据实际情况增加高电平,发出键盘扫描信号,其他情况则可以采用能耗较低的低电平。 基于MSP430 单片机的空间定向测试仪的串行输入口和串行输出口分别与MSP430 单片机相连,主要负责接收方位信息接收器传输的各种信息。基于MSP430 单片机的空间定向测试仪供电电压范围是1.8 ~ 3.0V,该测试仪的硬件平台需要使用三种电压,内核的工作电压为1.8V,存储器和外部I/O 设备的工作电压为3.3V,系统平台的工作电压则为4.2V.该仪器所使用的是宽电平输出,通过转换器进行多电平输出,并且可以通过LM317 稳压器得到稳定电压。此外,复位电路的设计也是相当重要的一个环节,复位电路主要完成测试仪的上电复位和测试仪在运行过程中用户的按键复位功能。复位电路主要由简单的RC 复位电路组成,拥有可靠的逻辑复位功能。为了保证测试仪能够有效复位,需要选择合适的参数,调整复位状态的时间。对于S3C2410X,在测试仪上电后nRESET 端必须保持低电平至少有4 个MCLK 周期,两级非门电路用于按钮去抖动和波形整形;nRESET 端的输出状态与Reset 端相反,用于高电平复位。 2 空间定向测试各接口的软件设计 基于MSP430 单片机的空间定向测试仪的软件工作平台主要有内嵌式编辑器、编译器、汇编器、连接器、调试器以及函数库管理器。基于MSP430 单片机的空间定向测试仪的编程主要可以分为方位信息接收器数据输入的传统通信程序设计、LCD 数据显示输出的程序设计、下位机串口通信模块程序三大部分。 2.1 接收方位信息流程设计 接收方位信息的流程如下图2 所示。首先需要设置一个串口中断,串行控制寄存器RI 表示接收中断的标志位,当RI=1 时,说明空间定向测试仪接收到数据。然后将RI 至零,判断下一组数据的信息状态。将路径字母输入缓冲区中,判断该语句是否为A(电流数据),如果判断为A 就将所需要的语句输出到LCD 显示屏上,如果为V(电压数据),则不进行显示。 2.2 液晶显示流程设计 MSP430单片机通过中断接收主通信控制器发来的数据,并将接收到的数据送给LCD 显示。通信参数设置为波特率为1200bps,8 个数据位,CRC 校验。对接收到的数据汉字采用16*16 的点阵、字母和数字母采用8*16 的点阵显示。由于需要显示的汉字、字母和数字是固定的,所以采用直接固化显示字模到FLASH 中的方法。这种方法占用空间少,程序实现简单,显示速度快,适合字模数据库不大的情况。液晶显示程序流程如图4 所示。 2.3 下位机串口通信流程设计 首先调用初始化函数进行系统初始化,串口通信结构图如图5 所示。初始化完毕后,程序进入主循环。每次循环时,程序首先调用DoUart 处理串行通信接收缓冲区中的数据。处理完毕后,如果有需要发送给PC 机的数据,就调用SendUart 函数发送数据。如果串行通信模块收到数据,则CPU 退出低功耗模式,而进入串行接收中断程序。退出中断程序后,CPU 不再进入低功耗模式,并执行跳转语句,进行下一轮循环,再次调用DoUart 和SendUart 函数。若没收到数据,则CPU 会一直处于低功耗模式。 3 调试 IAR C-SPY 高级调试器与IAR Embedded Workbench的工作环节能够很好的匹配在一起,可以形成一个拥有较强功能的高级语言交互调试器,可以对汇编语言或者C 语言进修调试。能够设置断点,进修单步运行,并且支持如Stepin,Step over 等多种单步运行方式,可以观察寄存器以及内存的数值,查看变量。 在这里,笔者使用硬件仿真调试Flash EmulationTool 模式。主要通过JTAG 接口与MSP430单片机的硬件系统相连接,然后下载程序。MSP430单片机接外围电路并且模拟硬件系统的真实环境进行调试,验证应用程序是否有错误,同时检验目标系统的硬件设计是否足够完善。 4 结束语 综上所述,单片机是将计算机、微电子以及现代通讯融合在一起的高新技术,在工业控制以及测量领域的应用非常广泛。本文研究的MSP430 单片机的主要特点是可靠性高、操作简单、维护方便。基于MSP430 单片机的空间定向测试仪有超低的功耗,而且在降低芯片的电源电压和灵活而可控的运行时钟方面都有其独到之处。因此在车辆、舰船、飞行器等导航领域中有着非常广泛的发展和应用前景。本文主要介绍了基于MSP430 单片机的空间定向测试仪的结构设计,对其硬件结构设计以及软件结构设计进行了细致的分析研究,从而能够满足实际应用对基于MSP430 单片机的空间定向测试仪在性能以及可靠性方面的需求,为基于MSP430 单片机的空间定向测试仪未来的发展提供更加广阔的空间。

    时间:2021-04-15 关键词: 超低功耗 MSP430 空间定向测试仪

  • 如何提高太阳能电池效率?太阳能电池电级材料有哪些?

    如何提高太阳能电池效率?太阳能电池电级材料有哪些?

    太阳能电池作为常用电池类型,在现代社会得到了进一步发展。同时,太阳能电池为我们的生活带来了诸多便利,如美团单车上面的太阳能电池,为定位续航提供了支持。为增进大家对太阳能电池的认识,本文将介绍提高太阳能电池效率的技术以及太阳能电池的电级材料。如果你对太阳能电池具有兴趣,不妨继续往下阅读哦。 一、如何提高太阳能电池效率 太阳能电池,是一种利用太阳光直接发电的光电半导体薄片,又称为“太阳能芯片”或“光电池”,它只要被满足一定照度条件的光照度,瞬间就可输出电压及在有回路的情况下产生电流。在物理学上称为太阳能光伏(Photovoltaic,缩写为PV),简称光伏。 太阳能电池是通过光电效应或者光化学效应直接把光能转化成电能的装置。以光伏效应工作的晶硅太阳能电池为主流,而以光化学效应工作的薄膜电池实施太阳能电池则还处于萌芽阶段。 我们所说的太阳能电池效率是什么意思?我们使用的每个设备都具有一定的效率。考虑一台每小时可生产10个气球的机器。在这十个气球中,有两个气球有孔或其他类型的缺陷。这意味着该机器的效率为80%,因为该机器吸收了生产10个气球所需的原材料,但仅将其中的80%转换为有用的输出。因此,设备的效率代表了提供给它的每单位输入所产生的有用输出量。 晶体硅太阳能电池的理论效率为25%(AMO1.0光谱条件下)。太阳能电池的理论效率与入射光能转变成电流之前的各种可能损耗的因素有关。其中,有些因素由太阳能电池的基本物理决定的,有些则与材料和工艺相关。从提高太阳能电池效率的原理上讲,应从以下几方面着手: 1、 减少太阳能电池薄膜光反射的损失 2、 降低PN结的正向电池(俗称太阳能电池暗电流) 3、 PN结的空间电荷区宽度减少,幷减少空间电荷区的复合中心。 4、 提高硅晶体中少数载流子寿命,即减少重金属杂质含量和其他可作为复合中心的杂质,晶体结构缺陷等。 5、 当采取太阳能电池硅晶体各区厚度和其他结构参数。 目前提高太阳能电池效率的主要措施如下,而各项措施的采用往往引导出相应的新的工艺技术。 (1) 选择长载流子寿命的高性能衬底硅晶体。 (2) 太阳能电池芯片表面制造绒面或倒金字塔多坑表面结构。电池芯片背面制作背面镜,以降低表面反射和构成良好的隔光机制。 (3) 合理设计发射结结构,以收集尽可能多的光生载流子。 (4) 采用高性能表面钝化膜,以降低表面复合速率。 (5) 采用深结结构,幷在金属接触处加强钝化。 (6) 合理的电极接触设计以达到低串联电阻等。 二、太阳能电池的电极材料有哪些 太阳能电池是通过光电效应或者光化学效应直接把光能转化成电能的装置。以光电效应工作 的菁膜式太阳能电池为主流,而以光化学效应工作的式太阳能民池则还处于萌芽阶段。太阳光照在半导体p-n结上,形成新的空穴由-电子对。在p-n结电场的作用下,空穴由n区流向p区,电子由p区流向n区,接通电路后就形成电流。这就是光电效应太阳能电池的工作原理。 太阳能电池按结晶状态可分为结晶系薄式和非结晶系膜式(以下表示为a-)两大类,而前者又分为单结晶形和多结晶形。 按材料可分类硅薄膜形、化合物半导体薄膜形和有机薄膜形,百化合物半导体薄膜形又分为 非结晶形(a-Si:H,a-Si:H:F,a-SixGel-x:H等)、ⅢV族(GaAs,InP)、ⅡⅥ族(cds系)和磷化锌(Zn3P2)等。插表列出了各类太阳能电池的分类和用途。 以上便是此次小编带来的“太阳能电池”相关内容,通过本文,希望大家对如何提高太阳能电池效率和太阳能电池电级材料具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-15 关键词: 太阳能电池 指数 电极材料

  • 太阳能电池有哪些?看这一篇太阳能电池介绍就够了

    太阳能电池有哪些?看这一篇太阳能电池介绍就够了

    太阳能电池是最常见的电池之一,对于太阳能电池,我们通常也较为熟悉。上篇太阳能电池相关文章中,小编对太阳能电池效率问题有所介绍。为增进大家对太阳能电池的认识,本文将对薄膜太阳能电池的种类予以解读。如果你对太阳能电池具有兴趣,不妨继续往下阅读哦。 薄膜太阳能电池是缓解能源危机的新型光伏器件。薄膜太阳能电池可以使用在价格低廉的陶瓷、石墨、金属片等不同材料当基板来制造,形成可产生电压的薄膜厚度仅需数μm,目前转换效率最高可以达13%。薄膜电池太阳电池除了平面之外,也因为具有可挠性可以制作成非平面构造其应用范围大,可与建筑物结合或是变成建筑体的一部份,应用非常广泛。 薄膜太阳能电池的种类 非晶硅(Amorphous Silicon, a-Si)、微晶硅(Nanocrystalline Silicon,nc-Si,Microcrystalline Silicon,mc-Si)、化合物半导体II-IV 族[CdS、CdTe(碲化镉)、CuInSe2]、色素敏化染料(Dye-SensiTIzed Solar Cell)、有机导电高分子(Organic/polymer solar cells) 、CIGS (铜铟硒化物)。。等 GaAs属于III-V族化合物半导体材料,其能隙为1.4eV,正好为高吸收率太阳光的值,与太阳光谱的匹配较适合,且能耐高温,在250℃的条件下,光电转换性能仍很良好,其最高光电转换效率约30%,特别适合做高温聚光太阳电池。砷化镓生产方式和传统的硅晶圆生产方式大不相同,砷化镓需要采用磊晶技术制造,这种磊晶圆的直径通常为4—6英寸,比硅晶圆的12英寸要小得多。磊晶圆需要特殊的机台,同时砷化镓原材料成本高出硅很多,最终导致砷化镓成品IC成本比较高。磊晶目前有两种,一种是化学的MOCVD,一种是物理的MBE。GaAs等III-V化合物薄膜电池的制备主要采用MOVPE和LPE技术,其中MOVPE方法制备GaAs薄膜电池受衬底位错,反应压力,III-V比率,总流量等诸多参数的影响。GaAs(砷化镓)光电池大多采用液相外延法或MOCVD技术制备。用GaAs作衬底的光电池效率高达29.5%(一般在19.5%左右),产品耐高温和辐射,但生产成本高,产量受限,现今主要作空间电源用。以硅片作衬底,MOCVD技术异质外延方法制造GaAs电池是降用低成本很有希望的方法。已研究的砷化镓系列太阳电池有单晶砷化镓,多晶砷化镓,镓铝砷--砷化镓异质结,金属-半导体砷化镓,金属--绝缘体--半导体砷化镓太阳电池等。 砷化镓材料的制备类似硅半导体材料的制备,有晶体生长法,直接拉制法,气相生长法,液相外延法等。由于镓比较稀缺,砷有毒,制造成本高,此种太阳电池的发展受到影响。除GaAs外,其它III-V化合物如Gasb,GaInP等电池材料也得到了开发。 1998年德国费莱堡太阳能系统研究所制得的GaAs太阳能电池转换效率为24.2%,为欧洲记录。首次制备的GaInP电池转换效率为14.7%。另外,该研究所还采用堆叠结构制备GaAs,Gasb电池,该电池是将两个独立的电池堆叠在一起,GaAs作为上电池,下电池用的是GaSb,所得到的电池效率达到31.1%。 砷化镓(GaAs)III-V化合物电池的转换效率可达28%,GaAs化合物材料具有十分理想的光学带隙以及较高的吸收效率,抗辐照能力强,对热不敏感,适合于制造高效单结电池。但是GaAs材料的价格不菲,因而在很大程度上限制了用GaAs电池的普及。 铜铟硒CuInSe2简称CIC.CIS材料的能降为1.1 eV,适于太阳光的光电转换,另外,CIS薄膜太阳电池不存在光致衰退问题。因此,CIS用作高转换效率薄膜太阳能电池材料也引起了人们的注目。 CIS电池薄膜的制备主要有真空蒸镀法和硒化法。真空蒸镀法是采用各自的蒸发源蒸镀铜,铟和硒,硒化法是使用H2Se叠层膜硒化,但该法难以得到组成均匀的CIS。CIS薄膜电池从80年代最初8%的转换效率发展到现今的15%左右。日本松下电气工业公司开发的掺镓的CIS电池,其光电转换效率为15.3%(面积25 px2)。1995年美国可再生能源研究室研制出转换效率17.1%的CIS太阳能电池,这是迄今为止世界上该电池的最高转换效率。预计到2000年CIS电池的转换效率将达到20%,相当于多晶硅太阳能电池。CIS作为太阳能电池的半导体材料,具有价格低廉,性能良好和工艺简单等优点。 CdTe是Ⅱ-Ⅵ族化合物半导体,带隙1.5eV,与太阳光谱非常匹配,最适合于光电能量转换,是一种良好的PV材料,具有很高的理论效率(28%),性能很稳定,一直被光伏界看重,是技术上发展较快的一种薄膜电池。碲化镉容易沉积成大面积的薄膜,沉积速率也高。CdTe薄膜太阳电池通常以CdS/CdTe异质结为基础。尽管CdS和CdTe和晶格常数相差10%,但它们组成的异质结电学性能优良,制成的太阳电池的填充因子高达FF =0.75。 制备CdTe多晶薄膜的多种工艺和技术已经开发出来,如近空间升华、电沉积、PVD、CVD、CBD、丝网印刷、溅射、真空蒸发等。丝网印刷烧结法:由含CdTe、CdS浆料进行丝网印刷CdTe、CdS膜,然后在600~700℃可控气氛下进行热处理1h得大晶粒薄膜。近空间升华法:采用玻璃作衬底,衬底温度500~600℃,沉积速率10μm/min.真空蒸发法:将CdTe从约700℃加热钳埚中升华,冷凝在300~400℃衬底上,典型沉积速率1 nm/s. 以CdTe吸收层,CdS作窗口层半导体异质结电池的典型结构:减反射膜/玻璃/(SnO2:F)/CdS/P-CdTe/背电极。电池的实验室效率不断攀升,现今突16%。20世纪90年代初,CdTe电池已实现了规模化生产,但市场发展缓慢,市场份额一直徘徊在1%左右。商业化电池效率平均为8%-10%。 人们认为,CdTe薄膜太阳电池是太阳能电池中最容易制造的,因而它向商品化进展最快。提高效率就是要对电池结构及各层材料工艺进行优化,适当减薄窗口层CdS的厚度,可减少入射光的损失,从而增加电池短波响应以提高短路电流密度,较高转换效率的CdTe电池就采用了较薄的CdS窗口层而创了最高纪录。要降低成本,就必须将CdTe的沉积温度降到550℃以下,以适于廉价的玻璃作衬底;实验室成果走向产业,必须经过组件以及生产模式的设计、研究和优化过程。至今,不仅有许多国家的研究小组已经能够在低衬底温度下制造出转换效率12%以上的CdTe太阳电池,而且在大面积组件方面取得了可喜的进展,许多公司正在进行CdTe薄膜太阳电池的中试和生产厂的建设,有的已经投产。 在广泛深入的应用研究基础上,国际上许多国家的CdTe薄膜太阳电池已由实验室研究阶段开始走向规模工业化生产。1998年美国的CdTe电池产量就为0.2MW,日本的CdTe电池产量为2.0MW。德国公司将在Rudisleben建成一家年产10MW的CdTe薄膜太阳电池组件生产厂,预计其生产成本将会低于$1.4/W。该组件不但性能优良,而且生产工艺先进,使得该光伏组件具有完美的外型,能在建筑物上使用,既拓宽了应用面,又可取代某些建筑材料而使电池成本进一步降低。 CdTe薄膜太阳电池是薄膜太阳电池中发展较快的一种光伏器件。美国南佛罗里达大学于1993年用升华法在25px2面积上做出效率为15.8 %的太阳电池,随后,日本报道了CdTe基电池以CdTe作吸收层,CdS作窗口层的n-CdS/ p-CdTe半导体异质结电池,其典型结构为MgF2/玻璃/ SnO2:F/ n-CdS/ p-CdTe/背电极,小面积电池最高转换效率16%,成为当时CdTe薄膜太阳能电池的最高纪录,如今,太阳电池的研究方向是高转换效率,低成本和高稳定性。因此,以CdTe为代表的薄膜太阳电池倍受关注,面积为90000px2电池转换效率达到11.1%的水平。美国国家可再生能源实验室提供了Solar Cells lnc的面积为171975px2CdTe薄膜太阳电池的测试结果,转换效率达到7.7%;Bp Solar的CdTe薄膜太阳电池,面积为113500px2,效率为8.4%,面积为17650px2的太阳电池,转换效率达到10.1%;Goldan Photon的CdTe太阳电池,面积为88200px2,转换效率为7.7%。 碲化镉薄膜太阳电池的制造成本低,现今,已获得的最高效率为16%,是应用前景最好的新型太阳电池,它已经成为美、德、日、意等国研究开发的主要对象。 CdTe薄膜太阳电池较其他的薄膜电池容易制造,因而它向商品化进展最快。已由实验室研究阶段走向规模化工业生产。下一步的研发重点,是进一步降低成本、提高效率并改进与完善生产工艺。CdTe太阳能电池在具备许多有利于竞争的因素下,但在2002年其全球市占率仅0.42﹪,现今CdTe电池商业化产品效率已超过10﹪,究其无法耀升为市场主流的原因,大至有下列几点:一、模块与基材材料成本太高,整体CdTe太阳能电池材料占总成本的53﹪,其中半导体材料只占约5.5﹪。二、碲天然运藏量有限,其总量势必无法应付大量而全盘的倚赖此种光电池发电之需。三、镉的毒性,使人们无法放心的接受此种光电池。 CdTe太阳能电池作为大规模生产与应用的光伏器件,最值得关注的是环境污染问题。有毒元素Cd对环境的污染和对操作人员健康的危害是不容忽视的。我们不能在获取清洁能源的同时,又对人体和人类生存环境造成新的危害。有效地处理废弃和破损的CdTe组件,技术上很简单。而Cd是重金属,有剧毒,Cd的化合物与Cd一样有毒。其主要影响,一是含有Cd的尘埃通过呼吸道对人类和其他动物造成的危害;二是生产废水废物排放所造成的污染。因此,对破损的玻璃片上的Cd和Te应去除并回收,对损坏和废弃的组件应进行妥善处理,对生产中排放的废水、废物应进行符合环保标准的处理。现今各国均在大力研究解决CdTe薄膜太阳能电池发展的因素,相信上述问题不久将会逐个解决,从而使碲化镉薄膜电池成为未来社会新的能源成分之一。 浅谈多元化合物薄膜太阳能电池 据了解,科学家为了寻找单晶硅电池的替代品,除开发了多晶硅、非晶硅薄膜太阳能电池外,又不断研制其它材料的太阳能电池。其中主要包括砷化镓III-V族化合物、硫化镉、硫化镉及铜锢硒薄膜电池等。 在上述电池中,尽管硫化镉、碲化镉多晶薄膜电池的效率较非晶硅薄膜太阳能电池效率高,成本较单晶硅电池低,并且也易于大规模生产,但由于镉有剧毒,会对环境造成严重的污染,因此,并不是晶体硅太阳能电池最理想的替代。 据了解,砷化镓III-V化合物及铜铟硒薄膜电池由于具有较高的转换效率受到人们的普遍重视。GaAs等III-V化合物薄膜电池的制备主要采用 MOVPE和LPE技术,其中MOVPE方法制备GaAs薄膜电池受衬底位错、反应压力、III-V比率、总流量等诸多参数的影响。 除GaAs外,其它III-V化合物如GaSb、GaInP等电池材料也得到了开发。 另外,研究所还采用堆叠结构制备GaAs,Gasb电池,该电池是将两个独立的电池堆叠在一起,GaAs作为上电池,下电池用的是Gasb,所得到的电池效率达到31.1%。 铜铟硒CuInSe2简称CIS。CIS材料的能降为1.1 eV,适于太阳光的光电转换,另外,CIS薄膜太阳电池不存在光致衰退问题。因此,CIS用作高转换效率薄膜太阳能电池材料也引起了人们的注目。 CIS作为太阳能电池的半导体材料,具有价格低廉、性能良好和工艺简单等优点,将成为今后发展太阳能电池的一个重要方向。唯一的问题是材料的来源,由于铟和硒都是比较稀有的元素,因此,这类电池的发展又必然受到限制。 以上便是此次小编带来的“太阳能电池”相关内容,通过本文,希望大家对太阳能电池种类具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-15 关键词: 太阳能电池 指数 薄膜太阳能电池

  • 想了解太阳能电池吗?大佬带你看这些太阳能电池知识

    想了解太阳能电池吗?大佬带你看这些太阳能电池知识

    太阳能电池为生活带来了诸多便利,如安有太阳能电池的路灯,可以在夜间为我们守航。随着太阳能电池的普及,我们在使用过程中,可能会发现太阳能电池的一些特点等。为增进大家对太阳能电池的认识,本文将对太阳能电池的相关内容予以介绍。如果你对太阳能电池具有兴趣,不妨继续往下阅读哦。 降低硅太阳能电池成本的方法之一是尽量减少高质量硅材料的使用量,如薄膜太阳能电池。不过这种太阳能电池的效率只达到了约11-12%。研究人员们正在寻求提升其效率的方法。最近取得突破的技术有通过干法绒面优化上表面的结构和在外延层/衬底界面处插入一个中间多孔硅反射镜。采用这两种方式可将太阳能电池的效率提升到约14%。 1. 两种提升效率的技术 与基于体硅的太阳能电池相比,外延薄膜太阳能电池比较便宜。但现在外延薄膜太阳能电池的主要缺点是它们的效率相对较低。已有两种技术表明能提高薄膜太阳能电池的效率。一是利用卤素原子等离子加工,优化上表面结构,另一种技术是在外延层/衬底界面处引入中间反射镜。优化的上表面结构兼有满足均匀光散射(朗伯折射,LamberTIan refracTIon)的要求和通过微量减除硅来降低反射(因为外延硅层已相当薄)两个优点。引入中间反射镜(多重布拉格反射镜)将低能光子的路径长度至少延长了7倍,最终大大提高了太阳能电池的效率。 2. 低成本太阳能电池 基于单晶或多晶体硅基底的硅太阳能电池是光伏市场的主体。但若全部用高纯硅制作,生产这种太阳能电池非常耗能,并且比较昂贵。为进一步 推动光伏产业的发展,应通过降低材料成本来大力减少太阳能电池的生产成本。 外延薄膜硅太阳能电池具有成为体硅太阳能电池的低成本替代方案的潜力。与当前的体硅太阳能电池(200μm)相比,这种丝网印刷太阳能电池采用的衬底较便宜和有源硅层较薄(20μm)。这种低成本衬底包括高掺杂的晶体硅晶圆(用冶金级硅或废料加工的纯净硅)。用化学气相沉积法(CVD)在这种衬底上沉积一层外延有源硅薄层。 3. 产业竞争力 外延薄膜硅太阳能电池的生产工艺与传统的体硅太阳能电池非常相似。因此,与其它薄膜技术相比,在现有的生产线中实现外延薄膜硅太阳能生产相对容易。不过,外延薄膜硅太阳能电池产业竞争力的主要不足之处在于,比起传统的体硅太阳能电池,薄膜硅太阳能电池的效率较低:这些电池的开路电压和填充因数可以达到与体硅太阳能电池相近的水平,但由于存在光学活性薄层(与体硅厚度200μm相比,薄膜硅的活性层厚度仅20μm),光从外延层传输到衬底时,衬底质量较差引起光损失,短路电流损失,最多可高达7mA/cm2。 挑战在于如何在效率和成本之间获得完美的平衡,还须考虑大规模工业生产。本文介绍两种可延长光学路径长度并因此提高外延薄膜硅太阳能电池效率的技术:等离子绒面和在低成本硅衬底与活性层的界面处插入多孔硅反射镜。结果表明,这些措施可将外延薄膜硅太阳能电池的效率提高至14%左右。 4. 上表面等离子绒面 通过处理太阳能电池活性层的上表面,表面光散射发生变化,从而影响太阳能电池的性能。目的是形成最理想的上表面,100%漫反射(朗伯折射,表现出全散射)。此时光子平均以60°的角度穿过活性层,使得传播路径长度增大两倍。也就是说,仅20μm厚的活性层的光学表现为40μm厚。 利用基于氟的等离子处理,仅会去除极少量的硅(仅1,75μm),就可获得表现出朗伯折射的理想上表面。这对于外延薄膜硅太阳能电池极为重要,因为这种类型的太阳能电池的活性层相当薄(20μm)。除优化散射、提高电池效率外,等离子处理还能降低反射,实现倾斜光耦合和降低接触电阻。这就将短路电流减少1.0到1.5mA/cm2,进一步将电池效率提高0.5到1.0%。 5. 硅反射镜 提高外延薄膜硅太阳能电池效率的另一种方式是在活性层与低成本衬底的界面处插入一层多孔硅反射镜。该反射镜可降低长波长的光往衬底中的传播量。 实际上,利用电化学交替生长多孔和少孔薄层(一种多重布拉格反射镜,Bragg reflector)形成多孔硅叠层,制作反射镜,由四分之一波长定律定义交替层的厚度。外延生长活性层时,叠层中的多孔硅具有大大小小的空洞,重组为薄层,但仍保持最初布局。这种结构已被证明是有效的反射结构。这种反射镜通过布拉格效应(常规入射反射镜)或全内反射(光以大于临界角的入射角倾斜入射到反射镜)反射到达界面处的光子。结果这些光子再次通过活性层。逃逸角(大部分反射光子,因为光已被散射)以外的反射光子到达活性层的上表面,将被再次反射。因此延长了光学路径长度,提高了太阳能电池的效率。结果表明,在上表面实现完美的朗伯表面时,一个15层的多孔硅反射镜可以将光的传播路径长度提高14倍,意味着一个拥有15μm活性层的外延薄膜硅太阳能电池将与210μm厚的体硅太阳能电池具有相同性能。 引入多孔硅反射镜可使内部反射率达到80~84%,其中25%是因为存在布拉格效应本身。采用优化的反射镜设计可以进一步改进布拉格效应,优化反射镜使少孔层及多孔层的厚度随深度而变化(灵活的多孔硅叠层),让反射镜的带宽增得足够大。利用这种灵活的特殊结构,低能光子的路径长度可以在现在的基础上提高7倍之多。在低成本硅衬底上利用此反射层和丝网印制接触制作的太阳能电池达到了13.9%的高效率,而Jsc 为 29.6mA/cm2。 以上便是此次小编带来的“太阳能电池”相关内容,通过本文,希望大家对太阳能电池相关知识具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-14 关键词: 电池 太阳能电池 指数

  • 为何要发展电源管理芯片?如何选择电源管理芯片?

    为何要发展电源管理芯片?如何选择电源管理芯片?

    芯片的重要性不言而喻,我国目前在芯片方面的成就还未达到世界巅峰。但是,小编相信中国的芯片水平将会领先世界。为增进大家对芯片的了解,本文将对电源管理芯片予以解读。本文中,你将对电源管理芯片的发展必要性以及如何选择电源管理芯片有所认识。 一、什么是电源管理芯片 电源管理芯片(Power Management Integrated Circuits),是在电子设备系统中担负起对电能的变换、分配、检测及其他电能管理的职责的芯片。主要负责识别CPU供电幅值,产生相应的短矩波,推动后级电路进行功率输出。 主要电源管理芯片有的是双列直插芯片,而有的是表面贴装式封装,其中HIP630x系列芯片是比较经典的电源管理芯片,由著名芯片设计公司Intersil设计。它支持两/三/四相供电,支持VRM9.0规范,电压输出范围是1.1V-1.85V,能为0.025V的间隔调整输出,开关频率高达80KHz,具有电源大、纹波小、内阻小等特点,能精密调整CPU供电电压。 二、电源管理芯片发展的必要性 所有电子设备都有电源,但是不同的系统对电源的要求不同。为了发挥电子系统的最佳性能,需要选择最适合的电源管理方式。 首先,电子设备的核心是半导体芯片。而为了提高电路的密度,芯片的特征尺寸始终朝着减小的趋势发展,电场强度随距离的减小而线性增加,如果电源电压还是原来的5V,产生的电场强度足以把芯片击穿。所以,这样,电子系统对电源电压的要求就发生了变化,也就是需要不同的降压型电源。为了在降压的同时保持高效率,一般会采用降压型开关电源。 同时,许多电子系统还需要高于供电电压的电源,比如在电池供电设备中,驱动液晶显示的背光电源,普通的白光LED驱动等,都需要对系统电源进行升压,这就需要用到升压型开关电源。 此外,现代电子系统正在向高速、高增益、高可靠性方向发展,电源上的微小干扰都对电子设备的性能有影响,这就需要在噪声、纹波等方面有优势的电源,需要对系统电源进行稳压、滤波等处理,这就需要用到线性电源。上述不同的电源管理方式,可以通过相应的电源芯片,结合极少的外围元件,就能够实现。可见,发展电源管理芯片是提高整机性能的必不可少的手段。 三、如何选择电源管理芯片 电源管理的范畴比较广,既包括单独的电能变换(主要是直流到直流,即DC/DC),单独的电能分配和检测,也包括电能变换和电能管理相结合的系统。相应的,电源管理芯片的分类也包括这些方面,比如线性电源芯片、电压基准芯片、开关电源芯片、LCD驱动芯片、LED驱动芯片、电压检测芯片、电池充电管理芯片等。下面简要介绍一下电源管理芯片的主要类型和应用情况。 如果所设计的电路要求电源有高的噪音和纹波抑制,要求占用PCB板面积小(如手机等手持电子产品),电路电源不允许使用电感器(如手机),电源需要具有瞬时校准和输出状态自检功能,要求稳压器压降及自身功耗低,线路成本低且方案简单,那么线性电源是最恰当的选择。这种电源包括如下的技术:精密的电压基准,高性能、低噪音的运放,低压降调整管,低静态电流。 在小功率供电、运放负电源、LCD/LED驱动等场合,常应用基于电容的开关电源芯片,也就是通常所说的电荷泵(Charge Pump)。基于电荷泵工作原理的芯片产品很多,比如AAT3113。这是一种由低噪声、恒定频率的电荷泵DC/DC转换器构成的白光LED驱动芯片。AAT3113采用分数倍(1.5&TImes;)转换以提高效率。该器件采用并联方式驱动4路LED。输入电压范围为2.7V~5.5V,可为每路输出提供约20mA的电流。该器件还具备热管理系统特性,以保护任何输出引脚所出现的短路。其嵌入的软启动电路可防止启动时的电流过冲。AAT3113利用简单串行控制接口对芯片进行使能、关断和32级对数刻度亮度控制。 而基于电感的DC/DC芯片的应用范围最广泛,应用包括掌上电脑、相机、备用电池、便携式仪器、微型电话、电动机速度控制、显示偏置和颜色调整器等。主要的技术包括:BOOST结构电流模式环路稳定性分析,BUCK结构电压模式环路稳定性分析,BUCK结构电流模式环路稳定性分析,过流、过温、过压和软启动保护功能,同步整流技术分析,基准电压技术分析。 除了基本的电源变换芯片,电源管理芯片还包括以合理利用电源为目的的电源控制类芯片。如NiH电池智能快速充电芯片,锂离子电池充电、放电管理芯片,锂离子电池过压、过流、过温、短路保护芯片;在线路供电和备用电池之间进行切换管理的芯片,USB电源管理芯片;电荷泵,多路LDO供电,加电时序控制,多种保护,电池充放电管理的复杂电源芯片等。 特别是在消费类电子方面。比如便携式DVD、手机、数码相机等,几乎用1块-2块电源管理芯片就能够提供复杂的多路电源,使系统的性能发挥到最佳。 以上便是此次小编带来的“芯片”相关内容,通过本文,希望大家对电源管理芯片具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-14 关键词: 芯片 电源管理芯片 指数

  • 深度解读基带芯片,带你观测基带芯片的“大脑”

    深度解读基带芯片,带你观测基带芯片的“大脑”

    芯片是非常重要的电子产品,可以说,在智能设备中,芯片充当了大脑的角色。芯片技术的高低,在一定程度上反映了国家制造、创新水平。上篇芯片文章中,我们对基带芯片和射频芯片的区别有所阐述。为增进大家对基带芯片的认识,本文将对基带芯片的处理器结构予以介绍。如果你对芯片相关内容具有兴趣,不妨继续往下阅读哦。 手机的控制芯片有很多,基带芯片只是其中一部分,主要含两个部分,一个部分是射频部分,就信息发送和接收部分,一个部分是基带部分,就是信息的处理。 合起来基带芯片就是将手机的信息处理后通过射频部分发射到基站,再把基站的信号通过射频部分接收后处理完再传递给手机。 必须说明的是:早期的基带芯片一般没有音频信号的编译(编码解码)功能,也没有视频信息的处理功能。而目前的芯片,大都集成了这些功能。甚至,为了进一步简化设计,这些编译电路所需要的电源管理电路也日益集成于其中。但是,为了保证电路的稳定性和抗干扰性以及个性化设计的要求,信号的功率放大电路尚未集成于此,而是由另外芯片独立完成。 那么,基带芯片的处理器结构是怎样的呢? 常用的基带芯片大多采用基于ARM的微处理器,ARM7TDMI是低端的ARM芯核,它所使用的电路技术能使它稳定地在低于5V的电源下工作,可采用16/32位指令实现8/16/32位数据格式,具有高的指令吞吐量、良好的实时中断响应、小的处理器宏单元ARM7能高效的运行移动电话软件。以ARM7TDMI为例: 控制核ARM7TDMI,采用0.35um制造工艺。包括一个ARM7 32位RISC微处理核;1个Thumb能将16bit指令解压为32bit指令;1个快速乘法器,一个输入校验断路器(ICEbreaker)模块。ICEbreaker模块给控制核提供单片内集成调试(debug)支持,当控制器停在程序断点时,有权访问控制器的全部内容及控制器可访问的全部地址空间。通过JTAG同步串联连接,信息随后送给计算机主机用于显示。 ARM可访问的地址空间由存储器管理单元(MMU)控制。MMU负责提供片选,控制等待状态及ARM产生的全部访问数据宽度(8bit/16bit/32bit)。MMU支持外部8bit或16bit长度的程序与数据存储器,外部ROM字宽由程序存储器尺寸pin指示,外部RAM则由寄存器指示。MMU管理ARMT状态变化;工作到睡眠由ARM7软件实现,睡眠到唤醒由中断或复位实现;MMU分配被要求的外部系统总线给DSP。 中断控制寄存器是存储器的映射,它允许隐藏与清除中断,配置由中断源及由ARM产生的中断信号FIQ,IRQ之间的映射。一共有10个中断源;外部设备中断、DSP产生的中断、SIM I/F中断(要求与SIM卡交换读写字)、VART1。2中断(要求与数据终端设备交换读写字节),按键扫描中断(指示按键连通或断开),TDMA帧中断1,TDMA帧中断2,OS记号,RTC警报。 Boot ROM内含ARM与USC(Universal system connector)系统串口的基本通信代码,ROM代码用于初始化MCU系统,而且能通过一个简单的通信方案实现往内部SRAM下载更有效的通信协议。 ARM7外围设备是存储器的映射并能被灵活驱动。IM I/F驱动SIM卡,并且执行部分ETSI Rec11。11接口协议;复位序列,Card on sequence,card off sequence, byte or multi-byte transfer。16个通用输入输出(GPIO)线可用,但它们的使用有所限制,因为它们常与其它信号(如地址线、串口线等)复用,故要计算实际可用的GPIO数量。脉冲产生器产生软件可调的PWM输出频率及占空比。特殊EEPROM串口总线确保当ARMT串接EEPROM时不会降低处理速度。GPSI(General purpose serial Interface)允许连接多种设备。 键盘扫描识别25个键的状态。RTC模块能提供一个带报警提示的全天完整的时间时钟,并带100年日历(注;不同的基带芯片该项功能有差异,有的芯片的RTC只是一个32位计数器,需要通过软件计算年月日时分秒)。 以上便是此次小编带来的“芯片”相关内容,通过本文,希望大家对基带芯片的处理器结构具备一定的了解哦。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-14 关键词: 芯片 基带芯片 指数

  • 什么是基带芯片?什么是射频芯片?二者有何关系?

    什么是基带芯片?什么是射频芯片?二者有何关系?

    芯片是重要的电子产品,芯片技术的高低决定了我们的手机、电脑等电子产品的性能。为增进大家对芯片的认识,本文将介绍什么是基带芯片、什么是射频芯片以及基带芯片和射频芯片之间的关系。如果你对芯片具有兴趣,不妨继续往下阅读哦。 一、什么是基带芯片 基带芯片是用来合成即将发射的基带信号,或对接收到的基带信号进行解码。具体地说,就是发射时,把音频信号编译成用来发射的基带码;接收时,把收到的基带码解译为音频信号。同时,也负责地址信息(手机号、网站地址)、文字信息(短讯文字、网站文字)、图片信息的编译。 基带芯片可分为五个子块:CPU处理器、信道编码器、数字信号处理器、调制解调器和接口模块。 CPU处理器:对整个移动台进行控制和管理,包括定时控制、数字系统控制、射频控制、省电控制和人机接口控制等。若采用跳频,还应包括对跳频的控制。同时,CPU处理器完成GSM终端所有的软件功能,即GSM通信协议的layer1(物理层)、layer2(数据链路层)、layer3(网络层)、MMI(人-机接口)和应用层软件。 信道编码器:主要完成业务信息和控制信息的信道编码、加密等,其中信道编码包括卷积编码、FIRE码、奇偶校验码、交织、突发脉冲格式化。 数字信号处理器:主要完成采用Viterbi算法的信道均衡和基于规则脉冲激励-长期预测技术(RPE-LPC)的语音编码/解码。 调制解调器:主要完成GSM系统所要求的高斯最小移频键控(GMSK)调制/解调方式。 接口模块:包括模拟接口、数字接口以及人机接口三个子块; 二、什么是射频芯片 射频(RF)是Radio Frequency的缩写,表示可以辐射到空间的电磁频率,频率范围从300kHz~300GHz之间。射频就是射频电流,简称RF,它是一种高频交流变化电磁波的简称。每秒变化小于1000次的交流电称为低频电流,大于10000次的称为高频电流,而射频就是这样一种高频电流。射频(300K-300G)是高频(大于10K)的较高频段,微波频段(300M-300G)又是射频的较高频段。 而射频芯片指的就是将无线电信号通信转换成一定的无线电信号波形, 并通过天线谐振发送出去的一个电子元器件。射频芯片架构包括接收通道和发射通道两大部分。对于现有的GSM和TD-SCDMA模式而言,终端增加支持一个频段,则其射频芯片相应地增加一条接收通道,但是否需要新增一条发射通道则视新增频段与原有频段间隔关系而定。对于具有接收分集的移动通信系统而言,其射频接收通道的数量是射频发射通道数量的两倍。这意味着终端支持的LTE频段数量越多,则其射频芯片接收通道数量将会显著增加。例如,若新增 M个GSM或TD-SCDMA模式的频段,则射频芯片接收通道数量会增加M条;若新增M个TD-LTE或FDD LTE模式的频段,则射频芯片接收通道数量会增加2M条。LTE频谱相对于2G/3G较为零散,为通过FDD LTE实现国际漫游,终端需支持较多的频段,这将导致射频芯片面临成本和体积增加的挑战。 为减小芯片面积、降低芯片成本,可以在射频芯片的一个接收通道支持相邻的多个频段和多种模式。当终端需要支持这一个接收通道包含的多个频段时,需要在射频前端增加开关器件来适配多个频段对应的接收SAW滤波器或双工器,这将导致射频前端的体积和成本提升,同时开关的引入还会降低接收通道的射频性能。因此,如何平衡射频芯片和射频前端在体积、成本上的矛盾,将关系到整个终端的体积和成本。 三、二者的关系 基带芯片可以认为是包括调制解调器,但不止于调制解调器,还包括信道编解码、信源编解码,以及一些信令处理。而射频芯片,则可看做是最简单的基带调制信号的上变频和下变频。 所谓调制,就是把需要传输的信号,通过一定的规则调制到载波上面让后通过无线收发器(RF Transceiver)发送出去的工程,解调就是相反的过程。 以上便是此次小编带来的“芯片”相关内容,通过本文,希望大家对基带芯片、射频芯片以及基带芯片和射频芯片的区别具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-14 关键词: 芯片 基带芯片 指数

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章