|
|
| | -文章搜索 - 最新文章 - | |
基于DSP的网络通信程序设计 |
| 发布时间:2006年10月5日 点击次数:1066 |
| 来源: 作者: |
DSP芯片是专门为实现各种数字信号处理算法而设计的、具有特殊结构的微处理器,其卓越的性能、不断上升的性价比、日渐完善的开发方式使它的应用越来越广泛。将计算机网络技术引入以DSP为核心的嵌入式系统,使其成为数字化、网络化相结合,集通信、计算机和视听功能于一体的电子产品,必须大大提升DSP系统的应用价值和市场前景。将DSP技术与网络技术相结合,必须解决两个关键问题:一是实现DSP与网卡的硬件接口技术,二是基于DSP的网络通信程序设计。DSP与网卡的硬件接口技术参考文献[1]有比较详尽的论述,以下主要讨论基于DSP的网络通信程序设计。
网卡通信过程控制可分为网卡初始化、接收控制和发送控制。下面分别予以讨论。 2.1 网卡初始化 网卡初始化的主要任务是设置所需的寄存器状态,确定发送和接收条件,并对网卡缓冲区RAM进行划分,建立接收和发送缓冲环。具体过程请参阅参考文献[2]。需要说明的是,每一块网卡被赋予一个物理地址,以便通信站点的标识。这个物理地址存在网卡的PROM(存储地址为0000~0005H)六个单元中,在网卡初始化时,通过远程DMA读入DSP内存中,并送入网卡物理地址寄存器。在一步的意义在于:一方面,如果能正确读出网卡的物理地址,则说明网卡硬件基本没有问题,网卡的上电复位和DSP对网卡的初始化顺利通过;另一方面,这个物理地址可以用于DSP网络系统中的点名、包的过滤丢弃等服务,也就是说,在链路层根据数据帧携带的源地址和目的地址确定数据报从哪里来,是否接收或丢弃。网卡初始化时另一个重要的工作就是接收缓冲环的设置,为了有效利用缓冲区,NIC将接收缓冲区RAM构成环形缓冲结构,如图2所示。 ![]() 接收缓冲区RAM分成多个256字节的缓冲区,N个(N最大为256)这样的缓冲区通过指针控制链接成一条逻辑上的缓冲环。缓冲环的开始页面地址存入PSTART寄存器,环页面结束地址存入PSTOP寄存器。PSTART和PSTOP确定了接收缓冲环的大小和边界。为便于缓冲环读写操作,还需要2个指针:当前页面指针CURR和边界指针BNRY。CURR确定下一包放在何处,起着缓冲环写页面指针作用;BNRY指向未经DSP取走处理最早到达的数据包起始页面,新接收的数据包不可将其覆盖,起着缓冲环读页面指针的作用。也就是说,CURR可以告诉用户网卡接收的数据分组当前放到了什么位置,而BNRY则用于确定DSP读缓冲环到了什么地方。由于接收缓冲区为环形结构,BNRY和CURR相等时,环缓冲区可能满也可能空。为了使NIC能辨别这两种状态,规定当BNRY等于CURR时,才认为环缓冲区满;当缓冲区空时,CURR比BNRY指针值大1。因此,初始化时设置:BNRY=PSTART,CURR=PSTART+1。这时读写指针不一致,为了保证正确的读写操作,引入一软件指针NEXTPK指示下一包起始页面。显然,初始化时NEXTPK=CURR。这时,缓冲环的读指针对NEXTPK,而BNRY只是存储分组缓冲区的起始页面边界指示,其值为NEXTPK-1。 2.2 接收控制过程 DSP完成对DP8390的初始化后,网卡就处于接收状态,一旦收到分组,就自动执行本地DMA,将NIC中FIFO数据送入接收缓冲环,然后向主机申请“数据分组接收到”中断请求。DSP如果响应中断,则启动网卡远程DMA读,将网卡缓冲区中的数据分组读入学生机存储区,然后对接收缓冲环CURR、NEXTPK、BNRY指针内容进行修改,以便网卡能从网上正确接收后续分组。DSP响应网卡接收中断后,接收控制过程如下: ①设置远程DMA的起始地址;RSAR0=00H,RSAR1=Nextpk。 ②设置远程DMA操作的字节数,这个长度在46~1500字节范围内根据具体要求自己确定。 ③0AH送命令寄存器CR,启动远程DMA读。 ④从网卡数据端口依序读入数据分组,注意,最先读入的4字节非数据分组内容,第1字节为接收状态,第2字节为下一包页地址指针,3与4字节为接收字节数。第2字节内容应该送入Nextpk,其它字节根据用户要求处理。 ⑤修改边界指针BNRY=Nextpk-1。 ⑥清除远程DMA字节数寄存器RBCR0和RBCR1。 2.3 发送控制过程 DSP先执行远程DMA写操作,将内存中的数据分组传至网卡发送缓冲区,然后启动发送命令进行数据分组发送。发送控制过程如下: ①设置远程DMA的起始地址为网卡发送缓冲区起始地址; ②设置远程DMA操作的字节数; ③12H送命令寄存器CR,启动远程DMA写; ④依序送出数据分组至网卡发送缓冲区; ⑤清除远程DMA字节数寄存器; ⑥设置发送字节数寄存器TBCR0和TBCR1; ⑦12H送命令寄存器CR,启动数据分组发送。
|
|
|
|
|
[通信网络] 相关文章: 15家TD终端厂商赶制手机参与第二阶段测试简介: 9月19日,针对有媒体报道称,“今年10月份,将有部分友好用户将先行入网,率先使用TD-SCDMA的3G业务”,知情人士向新浪科技表示,确有其事,但既算不上国内最早使用3G服务的用户;TD测试网络也不是要升级为准商用网络。其透露,预计春节后将对TD-SCDMA牌照做最后决策,同时少批量商用放号,数量将达数十万,甚至几百万户。 15家手机厂商赶制手机 知情人士透露,目前十几家TD-SCDMA芯片和手机厂商不久前一直在赶制手机,以便参加即将开始的规模用户测...... 万明坚称国产手机发展太快会出问题 联通153号段将两网混合放号 拆分传言几破灭 TD试商用将启动 奥运城市悉数入围 科胜讯HDTV机顶盒译码器取得Dolby Digital Plus认证 |
|
|
|