新闻  |   论坛  |   博客  |   在线研讨会
业余课题——基于MCU的TCP/IP通信模块
0750long | 2009-04-02 15:28:11    阅读:2103   发布文章

业余课题——基于MCU的TCP/IP通信模块

 

前一段时间在EDN-China上经常可以看到有很多人在用单片机实现TCP/IP协议栈,而且还有一些开发板出售,感到非常亲切,在这里我有自己的一些体会。04年我就采用单片机实现过TCP/IP协议栈,当时主要想用单片机验证一下TCP/IP通信的可行性。用MCU设计TCP/IP协议栈是一次非常锻练个人能力的机会,实现一个精简的协议栈需要一定的代码量,可以大大提高自己的编程能力。除了提高编程能力之外,还可以对TCP/IP的通信机制进行较为深入的探索,起码这个项目做下来之后会将一本TCP/IP协议栈的书籍研读完毕。

 

上图是我当时做的TCP/IP模块。TCP/IP通信模块的硬件部分比较简单,就是一个单片机的最小系统,网络通信的MAC和PHY可以采用RTL8019芯片,该芯片非常容易购买,而且很便宜。单片机需要采用Flash存储空间大一些的产品,例如可以采用Winbond(华邦)的W78E58之类的型号,其具有32KB的Flash程序存储空间,足够装载一个TCP/IP协议处理固件了。数据存储空间可以通过IS61S256之类的芯片进行扩展,32KB就足够了。另外,还需要93C46之类的配置芯片,可以配置系统的物理地址、ISA接口地址、中断信息等,甚至可以存储IP之类的信息。整个系统的芯片成本很低,可以控制在50元上下。

 

PCB设计是电子设计的必备,所以在模块设计时可以自己设计PCB,这个PCB比较简单,为了节约成本可以将PCB尺寸做的小一些。第一次做板PCB贵一些,100多块钱也就搞定了。加上元器件这个系统能够控制在200元之内。对于电子DIY的爱好者,我觉得很有必要亲自将整个系统DIY一遍。这样才能将系统设计的思想融入到自己的血液之中,体会更加深刻。

 

协议栈软件可以采用C51进行开发,在协议栈开发过程中需要充分考虑内存资源的管理,从中可以体会到内存碎片对于一个系统稳定性带来的危害;由于协议栈在MCU上裸奔,所以需要考虑不同的任务该如何去调度?前后台程序架构是否满足应用需求?实时性能否得到保证?W78E58没有调试接口,该如何对协议栈进行调试?是否需要开发一套串口调试软件辅助协议栈的开发?诸如此类的问题和答案只有在系统DIY的过程中才能深深体会。

 

发扬电子DIY的精神,才能激发电子爱好的热情。所以,我认为在校学生应该充分利用业余时间进行研究式DIY,而不仅仅是购买开发板进行软硬件组装。其实,学习本来就是一个探索的过程。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客