当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]网络处理器IP2022及其在嵌入式牌照识别系统中的应用

随着Internet技术的广泛应用,许多专家预测Internet技术将会无所不在,且是一个嵌入式技术。这就导致了一个需求,即在某些电子、电器设备中,以低成本去执行物理层(PHY)与TCP/IP函数集。嵌入式互联网技术可广泛应用于家电产品、安全设备、自动售货机、远程抄表以及工业控制等领域。

    在大量的嵌入式应用中,为物理层提供网络连接是一个关键。然而TCP/IP网络协议栈的供应商并没有意识到这一点。通常,即使协议栈是以软件形式执行,接口也是以某种专用的硬件形式提供。Ubicom的网络处理器IP2022已经能够执行TCP/IP协议模块,也能以软件形式执行物理口,例如UART、I2C等。随着以太网MAC/PHY物理层接口需求的增长,专为执行以太网协议的软件模块(ipModule)已经实现。

1 1P2022介绍

    IP2022是Ubicom公司的最新产品。IP2022芯片为网络连接应用进行了优化,十分适用于Internet基础设备和网桥/网关部分。使用Ubicom的预制软件模块和配置工具可以对芯片编程和重新编程,为多种设备间和人机间通讯应用创建了真正的单芯片解决方案。

    IP2022内含两个全双工串化器/解串器(Ser/Des)硬件单元,能直接与各种常用网络接口相连。这种功能使其能够实现片内10 Base-T以太网、USB以及其它各种快速串行协议。由于拥有Ser/Des硬件单元,IP2022也便于从一种协议转换到另一种协议,因而也能作为协议转换器。

    IP2022的软件模块包括10base-T以太网、USB、UART、I2C、SPI、并行从设备物理接口以及一个完整的TCP/IP堆栈。正在开发的多种附加软件可用于构建完整的端到端连接解决方案。Ubicom的Internet处理器体系结构和软件模块的组合创建了一个强大灵活的平台,使设计人员能够有信心跟上标准的更新与市场需求的变化,设计出用于未来的产品。

    IP2022具有100MIPS的处理能力,并为通讯应用进行了优化。它能够在执行应用程序的同时,提供高速计算、灵活的I/O控制和高效的数据处理功能,因此可用于高性能物理接口和网络协议的软件实现。IP2022的工作电压为2.5V,芯片上带有内置的电荷泵,因此不需要为闪存编程而提供高电压。

2 IP2022操作系统中OS简介

    ipOS是Ubicom设计的可配置的嵌入式实时操作系统。它是专为网络应用而优化的,然而不论在哪儿执行通信网络协议,都存在一个问题,就是如何最好地支持各种不同通信缓冲区/包(Buffer/Packet)的协议层。ipOS所采用的数据结构、网络缓冲区(Netbuf)为此类问题提供了一个有力且灵活的解决方案,与此同时达到了最少使用存储器的目的。

    ipOS支持单任务与多任务操作模式。要使用单任务模式可在配置工具中关闭多任务选项。在单任务模式下,需要尽可能快地轮询调用每个物理接口和一些操作系统函数。由于仅有一个任务,在轮询循环(Polling loop)中,任何被直接或间接调用的函数必须尽可能快地返回,因为这些函数阻碍了其它系统进程的继续进行。函数在等待I/0时,不能阻塞进程的执行,这是最重要的。

3 10Base-T以太网的软件执行

3.1硬件需求

    要给10Base-T以太网设置串化器/解串器(Ser/Des),来自差分线接收器或片上比较器的输人数据端应连接到IP2022 Ser/Des接收器的输入端,以太网的接收/发送信号要匹配Ser/Des指定的管脚。这些管脚通过一个带有终端的变压器连接到一个RJ45插座。IP2022与以太网接口连接示意图如图1所示。

在这个实现中,IP2022在单个芯片上从以太网MAC/PHY层到应用层完成了网络互连的所有方面。10Base-T以太网的实现利用了IP2022片内Ser/Des单元,从而使外围器件最少。

    IP2022工作电压为2.5V。在这个设计中,以太网接口需要5V电压而IP2022  I/0却工作在2.5V上,因此必须选择一个正确转换匝数的以太网变压器。所选的变压器或者能接受2.5V输入,或者可在电路中插入一个5V的TTL缓冲器来允许使用1:1的变压器。另一种方法是使IP2022的I/0工作在3.3V上,使用一个5V的CMOS缓冲器。在这个设计中,选择了一个1:1的变压器,因为它们更易购买,且价格合算;还有,大多数带有内置变压器的RJ45连接器仅在较为流行的1:1转换配置中有用,通过去掉电路中的缓冲器,可进一步简化电路。

3.2软件功能

    以太网软件执行以下操作

    (1)极性检测与反转;

    (2)载波侦听;

    (3)超时检测;

    (4)连接完整性测试与连接脉冲产生;

    (5)一旦冲突,随机后退;

    (6)检测到冲突时,发送一个32 bit的jam序列;

    (7)以太网包的形成,通过把报头、目的地址、源地址、长度/类型、MAC客户数据放人到发送缓冲区,软件必须计算帧校验;

    (8)MAC层函数。

    发送连接通过把Ser/Des的发送管脚改为通用I/0脚,产生一个连接脉冲。它使用实时时钟定时器产生一16ms的时基。发送后,连接脉冲定时器复位为0。

    接收连接刷新一个定时器,上界检查是在24ms,不执行下界检查。连接脉冲宽度由硬件检测。

    在发送帧,包含了驻留在IP2022 PRAM中硬编码的数据。帧包括目的/源地址、帧长、数据和32 bit的CRC。如果通道不忙,则开始传送帧。若检测到冲突,发送ISR执行以下操作:[!--empirenews.page--]

    (1)停止传送;

    (2)发送32bit的jam序列;

    (3)等待载波空闲;

    (4)产生随机延迟;

    (5)返回,重传条件集。

在接收帧,每个接收ISR检查接收到的包尾EOP(End Of Packet)。一帧接收到时,接收函数执行以下操作:

    (1)帧校验序列;

    (2)地址检查,单址通信和多址通信;

    (3)检查保留地址;

    (4)帧长度(太长或太短)检查。

    冲突检测是通过监听载波侦听指示位来进行的。最大的延迟为16bit的时间。

    在MAC层应用程序接口,MAC客户(上层)通过初始化数据指针和缓冲区长度发送一个包。然后调用“Transmit_Packet”函数,返回值是发送的结果。主程序通过轮询调用一个“Receive_ Packet”函数接收一个包。非零返回值指示接收到一个有效的包。

    在网络缓冲区(Netbuffer),较高层定义一个叫netbuffer的数据结构。这是访问TCP/UDP数据报不同元素的最好方法。与原始IP包一起,有一些分配给数据包元素(例如:源IP地址、目的IP地址、选项等)的指针。这些指针是静态的。与指针相关的还有长度域,这样很容易改变netbuffer的选项数目。为了构成一个MAC帧,发送程序必须根据指针和长度域从netbuffer中把数据级联起来。

4 ipOS应用程序的编写

    ipOS操作系统可工作在单任务模式或多任务模式下。在大多数情况下单任务模式的程序足以满足实时应用需求。利用Ubicom的Unity IDE开发环境生成的一个工程,最基本的有3个文件:entry.s、isr.s和main.c。

4.1引导程序代码

    所有引导程序代码都放在entry.s文件中。这段代码在复位向量处加载了一个占位程序。当IP2022上电时,IP2022跳到复位向量处执行引导程序代码。该代码完成以下功能:

    (1)更新FCFG寄存器,这样代码执行速度对时钟频率而言是优化的;

    (2)设置堆栈指针指向数据存储器的末端;

    (3)通用寄存器初始化为0;

    (4)把.data段从FLASH中加载到数据存储器的开始处;

    (5)将.data段之后的数据存储器区域设置为0来容纳.bss段;

    (6)把.pram段从FLASH加载到程序SRAM的开始处;

    (7)将程序SRAM区域设置为0来容纳.pram_data段;

    (8)引导程序完成,跳到main()主函数。

    注意:用户的任何初始化代码应该加入到main()函数中,不应该加到entry.s文件中。

4.2中断服务函数

    isr.s是中断服务函数(1SR)文件。当一个异步事件发生时,就会执行对应的ISR。在大多数使用虚拟外设的应用中,都要用到定时器timer0中断来控制周期性的进程。有两种ISR模板用于帮助基于timer0虚拟外设的开发。第一种是“Simple ISR template using timer0”,另一种是“Complex ISR Template”。

    如果仅有一个虚拟外设或所有的虚拟外设需要以同样的频率执行,那么使用第一个模板是很合适的。对于较为复杂的应用,可以使用“Complex ISR template”模板。详细的例子可参考其SDK帮助文件。

4.3主体结构

    main.c文件是应用程序的主体结构,主要包括配置块(CONFIC_BLOCK)和main()函数。

    配置块是系统配置参数的信息,它存储在IP2022的FLASH存储器中,控制着系统时钟、PLL分频系数和其它的一些系统参数。

    在main()函数中,主程序的结构非常简单。首先是调用debug_init()、heap add()和timer_init()这3个函数对操作系统进行初始化;然后是创建虚拟外设实例进行监听,用户的回调函数(Callback Function)作为监听函数的参数;接着是设置中断服务函数并使其开始运行;最后是对虚拟外设的端口进行轮询。当轮询函数检测到相应的状态时,就会调用相应的回调函数。一般来说,这些叵调函数是用户自己设计的处理函数。

下面是一个使用UART虚拟外设的例子:[!--empirenews.page--]

int main(void)

{

        stmct uart_instance *uarti;

        /*初始化操作系统*/

        debug_init();

heap_add((addr_t)(&_bss_end),(addr_t)(RAMEND -(DEFAULT_STACK_SIZE-1))-(addr_t)(&_bss_end));

        /*创建UART实例,进行监听。uart_recv_intr是用户编制的回调函数*/

        uarti:echo_uart_vp_instance_alloc();

        uarti—>listen(uarti,uarti,NULL,uart_recv_intr,NULL)

/*配置中断服务函数, 使其开始运行*/

tmr0_init();

set_int_vector(iSr);

global_int_enable();

/*死循环,轮询UART*/

        while(TRUE){

            echo_uart_vp_recv_poll(uarti);

            echo_uart_vp_send_poll(uar[1]

            timer_poll();

            }

        }

其它诸如以太网、USB等通信程序,结构与此基本上相同,只是通信协议不同,程序的基本思想是一致的。

5应用实例

高德威智能交通系统有限公司开发的新一代嵌入式牌照识别器(License Plate Recognition)功能框图如图2所示。通信接口芯片采用Ubicom的网络处理器IP2022,其片上虚拟外设包括UART、USB和以太网等接口,可以方便地接人Internet,从而实现远程程序更新和数据下载等功能。DSP采用TI的定点处理器TMS320C6204,完全满足实时处理的要求。视频处理器为Philips的SAA711lA,FPGA使用Altera的EPlK300QC,FLASH为SST的SST39LV016,SDRAM为ICSI的IS42S16400。

 下面简要介绍一下牌照识别器的工作流程。系统上电,IP2022复位并进行网络操作系统初始化工作。初始化完成后,IP2022取得对FLASH操作的总线控制权,开始读取FLASH中的FPGA程序配置逻辑。FPGA电路配置完成后,IP2022向FPGA中的控制寄存器的相应控制位写一跳变脉冲复位DSP,并释放对FLASH的操作控制权。IP2022开始等待DSP启动的完成。

    DSP的Reset脚连接到FPGA控制寄存器的对应控制位。DSP通过FPGA控制逻辑以DMA方式从FLASH中读取64K字节的程序。这64K程序中的引导程序负责把余下的DSP程序调度到SDRAM中。程序调度完成后,DSP释放对FLASH的总线控制权,并通知IP2022自己启动完成。DSP进入正常工作状态,通过12C总线设置SAA7111A,然后循环检查FPGA控制寄存器的状态位以等待汽车的到来。

    DSP启动完成后,IP2022重新取得对FLASH的控制权,进入轮询状态监听以太网和UART口。此时,远程主机可以通过以太网口对系统进行调试,更新DSP或FPGA程序。

当汽车到来时,埋在地下的线圈便会触发,FPGA的控制寄存器的相应状态位发生变化。DSP检测到该变化时便向摄像机发送抓图命令。摄像机输出的模拟视频信号通过视频处理器进行A/D变换后,形成YUV数字视频信号,再通过FPGA逻辑传输到DSP的SDRAM中。DSP开始执行牌照识别算法,所识别的牌照号可通过串口或网口传送到主机。而抓拍的图像经过JPEG压缩后也可通过以太网传输到远程主机。

通过使用本文介绍的方案,原先需要通过专用通信链路进行数据传输的各种电子设备,现在只要在其中加上一个廉价的网络处理器,而无需昂贵的PC机或工作站就可以通过互联网进行数据传输。这就给电子设备的升级、维护等带来了极大的方便性和灵活性。可以预料,嵌入式互联网技术必将在各个领域得到更为广泛的应用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭