最近完成了一个时间同步服务器,项目任务很简单,实现一个嵌入式时间服务器,接收GPS/北斗的时间信息,并通过网络给网络内的电脑授时,同时生成IRIG-B码发送给其他模块。
项目一开始有两个方案,一个是采用cortex-m3,没有系统,这样软件的工作量比较大,虽然有开源的TCP/IP协议栈,但整个系统集成的工作量还是很大,用cortex-m3还有一个好处就是IRIG-B码发生模块可以采用soc的定时器完成,成本低。
另一个方案是采用带系统的嵌入式平台,移植开源软件实现功能,嵌入式平台选用常用的三星S3C24XX方案,一开始的方案是应用S3C2440,但考虑到信号完整性的实现,在有限的项目时间内,可能不能很好的实现,后来采用了S3C2442芯片,这是一款MCP封装的芯片,集成了SDRAM和NANDFlash,布线非常简单,接下来是网卡的选择了,由于S3C2442采用的是0.5mmBGA的封装,如果采用并行总线网卡的话布线有一定的困难,最后采用了USB接口的网卡,显然S3C2442的USB控制器是USB1.1的,但对我们的授时应用已经足够了,网卡选择了SMSC9500Ai芯片。Linux内核自带驱动。
方案定下来就是实际的设计制作了,原理图部分比较简单,有很多资料可以参考,但注意要细心,把一件事情完成了再做下一件,正所谓欲速则不达,很深有体会。PCB的设计我这次主要要讲的就是线层的问题,我采用的是4层板,想当然的安装一般的原则,中间两层分别为电源和地,顶层和底层为信号层,等板子到了我才发现,由于采用的最细的线为4mil,线裸露在最外面不是很结实,下一次翻版的时候调整一下板子的层。
项目调试还比较顺利,就计几个教训吧,一是:S3C2442的内核电压吧,一开始我给内核供的是1.35V,但我跑的是400Mhz,这个问题可把我给害惨了,这个电压下面跑Uboot,kernel都没有问题,但是一挂文件系统,系统就跑飞,一开始我以为是软件问题,调试了一个星期无果,后来把内核电压升到1.5V所有的问题都解决了。
今天先写到这了。。。。。。。。。。
文章评论(0条评论)
登录后参与讨论