WINCE芯片的驱动怎么做?

xilidecai 2010-03-17 11:04:57
要开题了,今天老板给了个题目,基于WindowsCE手持式IPTV测试仪88e1111PHY芯片驱动程序的设计与实现:

平时我们做驱动一般都是和ARM直连的或者是arm的外扩,但是在这个项目里面,这块PHY芯片和FPGA相连,然后FPGA和ARM通过爽口RAM相连,请问ARM应该怎么去做这款芯片的驱动呢?
我问老板,他说从上层做?继续问,从上层怎么做?得到的答案自己回去查去,(再问的话肯定被羞辱,老板已经变脸了),所以小弟在这里发个帖子向各位大侠问一下!因为以前真的没有遇见这方面的问题!
希望给点思路?
...全文
253 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
xilidecai 2010-03-21
  • 打赏
  • 举报
回复
悲剧了!被扔在非技术区了!
xilidecai 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 joyzml 的回复:]

“但是现在开题了,老师带的学生多,没有题目了,就给我指定了这个!”
托雷斯在读研?
[/Quote]
在一所不知名的学校读研二...
GARY 2010-03-18
  • 打赏
  • 举报
回复
“但是现在开题了,老师带的学生多,没有题目了,就给我指定了这个!”
托雷斯在读研?
xilidecai 2010-03-18
  • 打赏
  • 举报
回复
现在的问题:
1.如果只考虑直接相连或者抛去FPGA不管,假设88E1111芯片是ARM的外设,那么它的驱动应该如何开发呢?微软有没有类似的代码或者库文件呢?还是一切从头开始呢?
2.我想把题目的芯片换成WIFI的,考虑到市场比较成熟,理论的一些东西比较好写,但是实现起来呢?微软有没有类似的代码或者库文件呢?还是一切从头开始呢?我只知道模板里面有个WAN,LAN(里面包含无线局域网802.11,而WIFI应该属于802.11b协议的),PAN,我想问下应该选择哪些组件?
下面以6.0下的模拟器为例:
Device drivers->Networking->LAN->SDIO WIFI(SyChip)
Device drivers->SDIO Clients->SDIO WIFI(SyChip)
Device drivers->SDIO Host->Samsung 2410 SDIO Host
Device drivers->SDIO Host->SDIO Standard Host Controller

我在WINCE600目录下对WIFI进行搜索,发现涉及WIFI的文件有点多,主要在这些目录下有一些相关代码:
D:\WINCE600\PRIVATE\TEST\NET\WIRELESS\WIFITESTS
D:\WINCE600\PRIVATE\TEST\NET\WIRELESS\XWIFI11BTEST
D:\WINCE600\PRIVATE\TEST\NET\WIRELESS\XWIFI_AUTOTEST
D:\WINCE600\PRIVATE\TEST\NET\POWER\LIB
D:\WINCE600\PUBLIC\SERVERS\OAK\SAMPLES\USBFLASH
D:\WINCE600\PUBLIC\SERVERS\OAK\LIB\ARMV4I\RETAIL(Debug)
D:\WINCE600\PUBLIC\RDP\OAK\PICTOR\PICTORAPP\INC(MAIN,CORE)
D:\WINCE600\PUBLIC\SERVERS\OAK\SAMPLES\LOCATION\80211PROVIDER
D:\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\NETCARD\AR6K\CF\INCLUDE
D:\WINCE600\PUBLIC\DIRECTX\OAK\SAMPLES\NMD\UI\SETTINGS(INC,UI)
D:\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\NETCARD\AR6K\CF\HOST
D:\WINCE600\PRIVATE\WINCEOS\COMM\PPP2\PPP\INC(APP,SERVER)
D:\WINCE600\PUBLIC\FP_VOIP\OAK\PHONE\HOMESCREEN(INC)
在论坛上也知道有些人做过WIFI,在这里特向你们请教开发IWFI芯片驱动的一些思路!望指教!
xilidecai 2010-03-18
  • 打赏
  • 举报
回复
震得好纠结哦~~~网上搜搜资料,继续找老板商量吧!
周末结贴!
LaiQingXiong 2010-03-17
  • 打赏
  • 举报
回复
把FPGA当做一个芯片即可。呵呵
kyzf 2010-03-17
  • 打赏
  • 举报
回复
如果FPGA的代码也是你做。

那么最简单的办法,就是把FPGA当成ARM的一个GPIO扩展器,
采用FPGA直通的办法.

FPGA将从PHY那里接受到的数据,不做任何处理直接送到双口RAM,并通讯ARM区双口RAM读取。

ARM发送数据时,完全把数据放到双口RAM,并通知FPGA去读取,并传给PHY。

这样就要求所有TCP/IP协议的处理都由你ARM的软件实现。
这样就基本变成ARM直挂PHY, 此时你也可以把FPGA当成245,总线驱动,而且还不占用ARM的GPIO。
就只需要几个通讯与控制的GPIO

另外协议需要你的OS支持。
kyzf 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 xilidecai 的回复:]
要开题了,今天老板给了个题目,基于WindowsCE手持式IPTV测试仪88e1111PHY芯片驱动程序的设计与实现:

平时我们做驱动一般都是和ARM直连的或者是arm的外扩,但是在这个项目里面,这块PHY芯片和FPGA相连,然后FPGA和ARM通过爽口RAM相连,请问ARM应该怎么去做这款芯片的驱动呢?
我问老板,他说从上层做?继续问,从上层怎么做?得到的答案自己回去查去,(再问的话肯定……
[/Quote]

楼主这种架构 在很多ARM9以及ARM11的官方开发板都被采用。
一般经典的开发板,都会带一片逻辑,FPGA(极少有用CPLD)来做以太网的驱动。
这样对于ARM而言,它的工作压力就减小很多。

对于楼主这种架构,你的ARM只需要驱动那片双口RAM就OK了。
具体和SDRAM差不多。

但你需要更加关注那个做FPGA代码的同事或同学 具体实现那些工作,你们之间得接口好。
ARM与FPGA之间的相关通讯与控制好做好。
博说医械研发 2010-03-17
  • 打赏
  • 举报
回复
FPGA要看它的具体作用了,WINCE驱动那边要把PHY、FPGA、RAM三个看成一个整体,要了解最终在RAM端是如何访问PHY的,这就避免不了要清楚FPGA与PHY之间的关系。
kyzf 2010-03-17
  • 打赏
  • 举报
回复
1、楼主可以先弄明白88e1111PHY芯片 与FPGA的硬件连接,用FPGA驱动以太网的PHY,具体是怎么实现的?
实现到TCP/IP协议的哪一层?FPGA具体与这颗PHY实现了那些功能?
2、在弄明白第一条的基础上,弄明白你那双口RAM里面储存以太网的什么数据?被FPGA处理到什么程度?
3、对于ARM而言,想处理双口RAM里面的数据,其实和处理一般的SDRAM或DDR里面的数据 是一样。

xilidecai 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 veabol 的回复:]

然后FPGA和ARM通过爽口RAM相连?是双口RAM?

分析一下FPGA与PHY是怎么通信的,再看看FPGA和ARM通过双口RAM访问的规则,其实和CPU直接访问PHY芯片比只是多了些中间过程,感觉写个驱动就行了,没必要在上层做。
[/Quote]
谢谢韦伯兄!原来方案中打算PHY芯片是由FPGA做一个IP软核来实现PHY芯片的驱动,但是现在开题了,老师带的学生多,没有题目了,就给我指定了这个!
写个驱动?还是按照以前外接芯片那种方式来写嘛?我本来想把FPGA何PHY堪称一个整体,可是在涉及到驱动编写的时候,FPGA算是什么?只是一个中介?还是直接忽略?
xilidecai 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 xilidecai 的回复:]
要开题了,今天老板给了个题目,基于WindowsCE手持式IPTV测试仪88e1111PHY芯片驱动程序的设计与实现:

平时我们做驱动一般都是和ARM直连的或者是arm的外扩,但是在这个项目里面,这块PHY芯片和FPGA相连,然后FPGA和ARM通过爽口RAM相连,请问ARM应该怎么去做这款芯片的驱动呢?

[/Quote]
双口!晕了!这个搜狗拼音估计也被赵本山给忽悠了!呵呵~~
博说医械研发 2010-03-17
  • 打赏
  • 举报
回复
然后FPGA和ARM通过口RAM相连?是双口RAM?

分析一下FPGA与PHY是怎么通信的,再看看FPGA和ARM通过双口RAM访问的规则,其实和CPU直接访问PHY芯片比只是多了些中间过程,感觉写个驱动就行了,没必要在上层做。
AMOROUS 2010-03-17
  • 打赏
  • 举报
回复
我们是用cpld的,其实都差不多
xilidecai 2010-03-17
  • 打赏
  • 举报
回复
我是说我!别误解哈~~~GM
xilidecai 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 laiqingxiong 的回复:]

我曾经搞过FPGA,哈哈哈哈,但是用的很挫。悲剧。
[/Quote]
ARM都没有玩转...
xilidecai 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kyzf 的回复:]
那么最简单的办法,就是把FPGA当成ARM的一个GPIO扩展器,
采用FPGA直通的办法.

FPGA将从PHY那里接受到的数据,不做任何处理直接送到双口RAM,并通讯ARM区双口RAM读取。

ARM发送数据时,完全把数据放到双口RAM,并通知FPGA去读取,并传给PHY。

这样就要求所有TCP/IP协议的处理都由你ARM的软件实现。
[/Quote]
谢谢你的热心答复!你的分数上升的好快啊!看样子最近又帮助了不少人哈!数据的采集处理还是用FPGA来实现的,ARM做主控,采用samsung6410,不过ARM和FPGA如何通信也是一个令我头痛的问题?是用Bool IOControl();还是其他什么的方式来实现呢?
LaiQingXiong 2010-03-17
  • 打赏
  • 举报
回复
我曾经搞过FPGA,哈哈哈哈,但是用的很挫。悲剧。
xilidecai 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 veabol 的回复:]

FPGA要看它的具体作用了,WINCE驱动那边要把PHY、FPGA、RAM三个看成一个整体,要了解最终在RAM端是如何访问PHY的,这就避免不了要清楚FPGA与PHY之间的关系。
[/Quote]
FPGA我不懂!呵呵~~我问了下搞FPGA开发的同学,他的意思是做个IP核,板子是赛灵思的,这本来是原来的方案。但是现在出于开题的需要让我用ARM做,板子肯定无法调试,模拟器下能做吗?我又问了下老板,得到的答复是:写论文和做项目不一样!我是那个惆怅啊!
xilidecai 2010-03-17
  • 打赏
  • 举报
回复
感谢各位仁兄的回答!吃过饭下午一看居然有这么多的回复!呵呵~~
情况是这个样子的,我们做IPTV测试仪,前端有个PHY芯片与FPGA相连,主要用于实现以太网口采集电信过来的视频流,FPGA用于解析这些视频流的参数,AMR则是相当于主控模块,与FPGA通过双口RAM进行命令和数据的交互!原计划是FPGA做这块PHY芯片的驱动,但是现在出于开题的需要,让我在WINCE环境下用ARM来做这个芯片的驱动。如果数据提取这些还好说点,方案里面是采用中断的方式实现数据指标的收发!
现在有两个问题:
1.归根到底,ARM是主控,如果PHY芯片让ARM来实现其驱动,FPGA只负责视频流的参数提取,这样子应该怎么去驱动呢?是不是还要考虑挂接总线,或者总线驱动之类的呢?感觉越想越复杂哦!呵呵~~
2.就算直接相连或者抛去FPGA不管,但是芯片的驱动呢?微软有没有类似的代码或者库文件呢?还是一切从头开始呢?
还请各位仁兄,不要嫌小弟愚昧!在此谢过!
加载更多回复(3)

1,076

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧