嵌入式internet接口的设计与实现

嵌入式internet接口的设计与实现
在电子设备网络化的背景下,目前广泛使用的以太网和TCP / IP协议已经成为最常用的网络标准,事实上,它的高速、可靠、层次和可扩展性使其在各个领域的应用越来越灵活,在许多情况下,以太网和TCP / IP的使用可以简化结构,降低成本。目前,嵌入式以太网的设计方案不是很多,其中大部分是基于单片机的缺点就是速度慢、成本太high.dsp是一种特殊的嵌入式微处理器和嵌入式系统并行数据通道快速处理数据的协处理器,在嵌入式DSP技术的介绍微波网络设备可以使嵌入式以太网更快,更便宜和更容易扩展功能。本文介绍了TMS320LF2407的接口电路及实现方法基于嵌入式系统和LAN91C111自适应10mb / / /100MB的嵌入式以太网控制芯片

1嵌入式以太网控制器LAN91C111芯片

LAN91C111是第三代快速以太网控制器采用SMSC公司专为嵌入式应用系统,以太网控制器芯片与媒体层的集成(MAC)和物理层(PHY)的CSMA / CD协议,其系统结构图如图1所示,以太网控制器的主要特点是如下。

(1)自适应选择传输速率支持6M+4M=10M 10/100Mbps。

(2)8KB内存是用来接收和发送缓存。

(3)支持突发数据传输。

(4)提前发送和接收功能。

(5)支持总线8位、16位和32位的CPU访问。

以太网控制器为802.3以太网传输协议发布的IEEE标准和协议。8 ~ 32位数据总线接口单元通过控制总线相连,地址总线与外部CPU控制芯片的数据总线。单位还集成了E2PROM接口,以及所有内部寄存器的初始价值首先可以放置在E2PROM存储器,并通过在开机时E2PROM接口输入到芯片,从而实现自动初始化,总线仲裁(仲裁)监视以太网总线数据通信状态。一旦发生拥塞,一方面,它通过总线接口单元与外部CPU连接。另一方面,它控制的存储器管理单元(MMU)实现总线数据协调。内存控制单元对8KB SRAM的动态存储,并实现了与DMA控制器的数据联系。DMA控制器控制DMA和以太网协议处理器之间的数据交换(EPH)在一起与总线控制器,通过以太网协议处理器输出最终会通过10M / 100M以太网总线的物理层及数据。

2硬件电路组成

对性价比的考虑,DSP控制器作为主cpu.tms320lf2407是240 x系列发布最强大的控制器采用TI。它有很大的存储空间(高达32K字闪存程序存储器,可扩展外部存储器和64K字64K字我 / O寻址空间),这是处理复杂的TCP / IP协议非常适合。

因为网络是专为嵌入式系统,其外围电路比较简单,其硬件接口图如图2所示。该lanc91c111内部寄存器可以通过地址线A0 ~ a15.the地址总线A1 ~ A15访问连接到DSP的A1和A0 ~ A15不暂停;数据总线D0 ~ D15连接到DSP的D0 ~ D15可以传输16位数据,D16 ~ D32左(因为LF2407是一个16位的数据总线);AEN芯片选择信号LAN91C111外我/ O接口的DSP的选通信号。这个单元的阅读水平路连接到写级WR分别。中断的intr0 LAN91C111端输出的信号送到DSP的外部中断脚,XINT1触发interruption.tg110-s050n2是电压可变滤波器为10M / 100M以太网,Protel的LAN91C111模块示意图。

3软件设计

编写以太网接口程序的步骤如下

3.1mu;C / OS-II实时操作系统的移植

穆;C/OS II是一个开源的嵌入式实时操作系统的实时性能好。这是一个抢占式多任务操作系统的可移植性和扩展性,是可以治愈的,它的大部分源代码用ANSIC语言编写。

移植工作包括以下内容:

(1)用汇编语言os_cpu_a.asm。

(2)用C语言os_cpu_c C.

(3)写os_cpu。H.

(4)妥善处理osmaptbl { }和{ } osunmaptbl。

(1)的os_cpu_a.asm文件包括4个子程序:OSStart HighRdy了,osintctxsw和ostickisr。

1)osstarthighrdy()函数

当osstart功能程序执行内核,说多任务系统启动,该osstart函数将调用osstarthighrdy函数获得最高优先级任务的TCB块堆栈指针,指针字段是从堆栈中的CPU任务恢复。由于任务堆栈中的初始化,任务的功能入口地址已设置弹出程序指针PC。因此osstarthighrdy登记的功能,只需要弹出的任务堆栈的内容进行登记,并将运行的任务。

2)()函数的代码

该函数是任务级的上下文切换功能,当任务被阻塞,主动请求CPU启动任务调度,进程是当前任务的CPU保存到任务堆栈中去,然后让高优先级的任务从ostcbhighrdy堆栈指针,然后从指针指向这个任务的CPU现场堆栈,以继续切换到一个水平,完成任务。表2为代码函数的伪代码。

VoidOSCtxSw(void){

保存处理器寄存器;将要挂起CPU寄存器的任务被压入当前堆栈中。

ostcbcur -> ostcbstkptr = SP; / * OSTCBCur目前是指向被中断的任务的TCB。此操作

保存到OSTCBStkPtr堆栈指针的任务,便于下次恢复从这里获取堆栈指针。

ostcbcur = ostcbhighrdy; / * OSTCBHighRdy指出这个现成的高优先级任务的TCB。

这是加载到ostcbcur来。

SP = ostcbhighrdy -> ostcbstkptr;高优先级任务准备 / *堆栈的栈顶指针。

还原任务的场景();因此,他们可以通过堆栈顶部的指针恢复任务。

执行中断返回指令; / *如果代码包含软中断的中断返回指令,转移不使用软中断。

}

桌子的2osctxsw函数的伪代码

3)osintctxsw()函数

该函数用于在中断级的上下文切换,因为CPU时钟中断响应,处理器从SVC中断模式,进入时钟中断服务函数ostickisr,ostickisr功能发现如果有一个高优先级的任务运行,系统不返回被中断的任务,高质量和直接调度准备第一级任务要尽快完成,以保证实时性能。但由于ostickisr功能已经节省了CPU的现场前的任务中断,OSIntCtxSW()不需要做类似的工作。当OSTickISR打电话给osintexit功能找出需要更高优先级的任务运行后,OSIntExit将是在OSTC TCB指针的任务BHighRdy在最后一幕中,然后osintexit调用osintctxsw功能从ostcbhighrdy把堆栈指针,然后恢复优先级高的任务,并继续执行,而不是回到时钟节拍中断服务程序,对osintctxsw功能过程的作用下半年一样了,所以OSCtxSW可以借的osintctxsw代码。

4)ostickisr()函数

针对CPU时钟中断,程序指针PC发生跳功能后,因为ostickisr调用ostimetick功能使所有的延迟不是节拍任务延迟数打0减1,高优先级任务和电话找到地方的OSIntExit函数,如果你需要切换,最后通过osintctxsw完成新任务的调度,否则还是回到时钟节拍中断任务。

os_cpu_c。C文件:该文件只包含一个OSTaskStkInit()子程序,功能启动任务堆栈通过模仿我拯救美元库函数TI公司,被称为功能ostaskcreate()和OSTaskCreateExt(),返回的指针值初始化后的任务堆栈初始化。注意:2407A的不同于一般的单片机的堆栈。芯片本身的堆栈(以下简称美国)仅为8级,不能作为系统堆栈使用。因此,C编译器将2个寄存器AR0和AR1 inside.ar1作为堆栈指针SP,AR0作为临时变量的指针FP堆栈。(不要使用这2个寄存器的汇编程序,如果必须使用,必须关闭中断,并注意保存和恢复),编译器将中断函数和压力进入美国,然后返回地址弹出的SP(AR1)的堆栈,保持当前的环境下,不同的是使用寄存器的功能程序,中断给我$保存以保存所有寄存器,返回跳(不要叫我休息(2美元)功能可以在RTS.SRC恢复登记看源代码)。这2个函数是中断入口8086和指令IRET,是的移植的基础。

os_cpu .h文件:内容可以根据在穆80x86修改的内容;C/OS-Ⅱ。

正确处理osmaptbl { }和{ }:osunmaptbl穆和C / O osmaptbl { }的osunmaptbl { } 2、osunmaptbl {} 2表也应妥善处理,在移植。否则,将发生的可寻址错误,这将使穆山和C/OS II无法正常运行,这是移植成功的重要因素之一。由于采用哈佛结构TMS320LF2407存储器、闪存(或扩展ROM)位于规划区,因此可以根据以下方法治疗:亩;osmaptbl {}和{} osunmaptbl在C / O数据类型从以int8uconstint8u、;在连接命令文件(.cmd)。Ldquo;Cinit块分配到闪存(或外部ROM),与C(光盘类)。在这种方式中,数据区的内存自动初始化程序运行时,那就是ldquo,,块Cinit和数据自动复制RAM数据区中的运行时。

配置os_fg。H的需要,修改CPU的中断向量表和周边的向量表,建立其他文档的内容根据实际需要。在这一点上,mu;C/OS II移植TMS320LF2407芯片已经完成。

规划3.2lan91c111

该方案主要包括三个部分:初始化、发送数据包,接收数据包。

3.2.1初始化

上电后,该登记在LAN91C111的值设置为默认值。CPU设置配置、基础和individualaddress寄存器以确保它工作正常。

3.2.2发送数据鲍柳成

(1)DSP发送allocatememory命令控制器(通常设置为0x0020的mmucom登记,),包的存储空间是在MMU packetbuffer充电控制器发送。

(2)DSP查询allocint位中断状况登记到位设置为1。它也可以在中断屏蔽等硬件中断的allocint点集,当MMU分配存储空间,txpacketnumber放置在allocationresult登记。

(3)复制packetnumber在allocationresult登记于登记packetnumber,设置指针登记(设为TX,WR,autoinc,0x4000)。然后分组数据从上层传输队列发送到控制器的数据register.statusword,bytecount,目的地址,源地址,数据包的数据和控制字,PacketSize要求写在转。

(4)DSP发送,ENQUEUEPACKETNUMBERTOTXFIFO命令给控制器(设置mmucom登记,通常设置为ox00c0),这张从packetnumber登记txfifo packetnumber,表明发送的数据包被放入队列。同时,在传输控制登记的txena点设置发射机开始。到目前为止,DSP的安装工作已经完成,可以闲到传输中断控制器产生的接收。

(5)当控制器传输包,第一个字(16位)在内存中写入的CSMA / CD对应的状态的话,那么在txfifo的packetnumber搬到了TXcompletionFIFO,并中断时,TXcompletionFIFO是不是空的。

(6)当dsp接收中断时,它开始执行中断处理程序。它读取中断状态寄存器。如果发送中断产生时,它读取发送数据包从FIFO端口登记的packetnumber写入到数据包编号登记,然后从内存中读取状态字,包括设置指针登记为TX路和autoinc,即0x6000,然后读取数据包的状态字登记。它是以弗所书登记镜子确定数据包发送成功根据状态字。如果成功的话,DSP释放释放命令给控制器(设置mmucom登记ox00a0),控制器将用于发送数据包的存储空间,并建立txintacknowledge登记,这将明显packetnumber在TXcompletionFIFO,有发送中断两种方案:(1)每个数据包被发送到产生一个中断。2。每个数据包的发送序列产生一个中断。这些方案是通过控制该登记autorelease位选择和传输中断使用两方案的位也不同。

发送器中断:当TXcompletionFIFO不空,0;

txemptyint:当txfifo是空的,1;

自动释放:如果设置为1,当数据包是成功的,packetnumber不写txcompletionfifo,它使用的存储空间自动释放。

(7)选择使用;每个发送一个包产生一个中断方案:允许发送器中断中断,自动释放= 0,流本方案如上图所示。

(8)选择使用每发送一个序列包产生一个中断的方案允许txemptyint和发送器中断,自动释放= 1产生中断时,发送的最后一包txemptyint FIFO中。当一个严重的传输错误时,一个发送器中断中断。同时,对失败的包的packetnumber保存到fifoports登记,所以DSP可以知道发送过程已经停止。该方案可以减轻DSP的负担,和存储空间的释放越快。当自动释放= 1,DSP不能获得成功的packetnumber包。

3.2.3接收数据的鲍柳成

(1) DSP sets the RXEN bit in the reception control register, allowing the packet to be received.

(2)具有正确地址的数据包被接收,存储空间从MMU的要求,和packetnumber分配,内部的DMA逻辑产生一个连续的地址,并接收字写入内存。如果边界,封包被丢弃和存储空间时释放。分组检测,状态字写入接收包的前面,和bytecount写入第二字。如果CRC校验正确,packetnumber写入接收高级先出。当接收高级先出不空,这rcvint中断产生;如果CRC校验不正确,存储空间发布不中断。

(3)DSP开始执行中断处理程序接收中断,读取中断状况登记,如果接收中断(rcvint - 1),可以从FIFO端口登记收到packetnumber包,而且从数据登记将收到发送到DSP的内存或磁盘包。处理完成后,DSP释放的removeandreleasefromtopofrx命令处理器,这是设置登记mmucom,设置0x0060,并释放存储空间和packetnumber使用。

4结语

自动协商模式的以太网和快速以太网使网络具有较高的性价比和广泛的应用,本设计采用DSP芯片LAN91C111的嵌入式以太网通信系统能正确接入快速以太网,10m / 100Mbps全双工或半双工自适应功能,与IEEE802.3 / / lobase-t 802.3u-100base-tx规格线,连接嵌入式以太网接口支持RJ45以太网,通过以太网接入互联网,从互联网上实现嵌入式监控设备。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部