当前位置:首页 > 电源 > 数字电源
[导读]随着Internet技术的广泛应用,许多专家预测Internet技术将会无所不在,且是一个嵌入式技术。这就导致了一个需求,即在某些电子、电器设备中,以低成本去执行物理层(PHY)与TCP/IP函数集。嵌入式互联网技术可广泛应用

随着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机或工作站就可以通过互联网进行数据传输。这就给电子设备的升级、维护等带来了极大的方便性和灵活性。可以预料,嵌入式互联网技术必将在各个领域得到更为广泛的应用。

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

【2024 年 6 月 11 日美国德州普拉诺讯】Diodes 公司 (Diodes) (Nasdaq:DIOD) 今日宣布推出 13.5Gbps 高速视频开关 PI3WVR41310。针对新一代商用显示器、游戏显示器、...

关键字: 开关 显示器 嵌入式

通常情况下,任务的优先级是根据其重要性和紧急性来设定的。但是,在并发系统或多任务环境中,确实存在一种被称为“优先级反转”的现象。

关键字: 嵌入式 实时操作系统 操作系统

一直以来,嵌入式四轴运动控制器的设计都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来嵌入式四轴运动控制器系统硬件设计的相关介绍,详细内容请看下文。

关键字: 嵌入式 控制器 运动控制器

柏林2024年6月11日 /美通社/ -- 据德国汽车行业协会(VDA)的最新消息,去年德国生产了127万量电动汽车(BEV和PHEV),其中95.5万辆是纯电动汽车。这使得德国成为欧洲生产电动汽车最多的国家。预计今年德...

关键字: 电动汽车 BSP 纯电动汽车 AI

【2024 年 6 月 6 日美国德州普拉诺讯】Diodes 公司 (Nasdaq:DIOD) 宣布扩展广受欢迎的 DML30xx 智能负载开关系列。此次推出四款新产品:DML3008LFDS、DML3010ALFDS、...

关键字: 负载开关 固态硬盘 嵌入式

2024年6月4日 – 专注于引入新品并提供海量库存™的电子元器件代理商贸泽电子 (Mouser Electronics)宣布将于6月12-14日亮相2024上海国际嵌入式展(展位号:3号馆 436号展位)。届时,贸泽电...

关键字: 嵌入式 机器视觉 RFID

台湾新竹-2024 年 5 月 30 日 - 全球嵌入式控制器Embedded Controller及secure IC解决方案领导者新唐科技股份有限公司(Nuvoton Technology Corporation)宣...

关键字: 嵌入式 控制器 安全芯片

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

空中下载技术(Over-the-Air Technology, OTA)是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术。本文采用了swupdate的方式进行ota升级,swupdate是一个基...

关键字: 核心板 嵌入式 Linux平台

新增 IEEE®1588 标准配置文件,满足电源和 5G专用网络同步要求

关键字: 嵌入式 5G 电源
关闭
关闭