
基于RTL8363SC的千兆双口VLAN光纤收发器
简介
千兆网线-光纤以太网信号的相互转换,支持VLAN功能
简介:千兆网线-光纤以太网信号的相互转换,支持VLAN功能开源协议
:CC-BY-SA-4.0
描述
项目简介
千兆网线-光纤以太网信号的相互转换
项目功能
基于螃蟹的RTL8363SC芯片,支持一个光口,两个千兆电口,提供两个固件,分别是傻瓜互通功能和VLAN功能。预留SFP+接口,芯片支持HISGMII功能,后期有望升级光口2.5G。
项目参数
适用于家庭内网络,开发商预留的弱电箱到书房只有一根单模光纤,没有网线,所以开发了这个项目,书房端使用RTL8363SC的双口交换机转换器,弱电箱端使用RTL8367S的五口交换机转换器,充分利用光纤。
划分两组VLAN,分别WAN网络和LAN网络,书房端的RTL8363SC的双口交换机刚好一个口WAN一个口LAN两根线接在路由器上,弱电箱的RTL8367S的双口交换机一个口WAN(接光猫)四个口LAN(接到别的房间)
目前使用的是芯片的SGMII模式,光口跑在千兆上。芯片支持HISGMII模式,可以跑2.5G网络,但是因为另一端的8367S的板子上没有画SFP,所以目前只跑在千兆。
注意事项
打样参数
JLC04101H-7628 0.8mm
软件代码
int main(void)
{
uint32_t i = 0,regValue,regValue2;
rtk_api_ret_t errorcode;
APP_SystemClockConfig();
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
Base_timer_Init();
SMI_Interface_GPIO_Init();
SMI_RST_L;
SMI_SCL_H;
SMI_SDA_H;
LED_OFF;
LL_mDelay(100);
SMI_RST_H;
LL_mDelay(500);
for(i=0;i<10;i++)
{
errorcode = rtk_switch_init();
if(errorcode == RT_ERR_OK)break;
LL_mDelay(100);
}
if(errorcode != RT_ERR_OK)goto rtk_error_init;
LL_mDelay(1);
rtk_port_mac_ability_t mac_cfg ;
mac_cfg.forcemode = 1;
mac_cfg.speed = PORT_SPEED_1000M;
mac_cfg.duplex = PORT_FULL_DUPLEX;
mac_cfg.link = PORT_LINKUP;
mac_cfg.nway = DISABLED;
mac_cfg.txpause = ENABLED;
mac_cfg.rxpause = ENABLED;
errorcode = rtk_port_macForceLinkExt_set(EXT_PORT0, MODE_EXT_1000X,&mac_cfg);
if(errorcode != RT_ERR_OK)goto rtk_error_init;
//VLAN 10 用作WAN网络 UTP_PORT2-utag EXT_PORT0-tag
//VLAN 20 用作LAN网络 UTP_PORT3-utag EXT_PORT0-tag
//UTP_PORT2 PID=10
//UTP_PORT3 PID=20
rtk_vlan_init();
rtk_vlan_cfg_t vlan1, vlan2;
#define VLAN1_VID 10
#define VLAN2_VID 20
memset(&vlan1, 0x00, sizeof(rtk_vlan_cfg_t));
RTK_PORTMASK_CLEAR(vlan1.mbr);
RTK_PORTMASK_CLEAR(vlan1.untag);
rtk_vlan_set(1, &vlan1);
memset(&vlan1, 0x00, sizeof(rtk_vlan_cfg_t));
RTK_PORTMASK_PORT_SET(vlan1.mbr, UTP_PORT2);
RTK_PORTMASK_PORT_SET(vlan1.mbr, EXT_PORT0);
RTK_PORTMASK_PORT_SET(vlan1.untag, UTP_PORT1);
rtk_vlan_set(VLAN1_VID, &vlan1);
memset(&vlan2, 0x00, sizeof(rtk_vlan_cfg_t));
RTK_PORTMASK_PORT_SET(vlan2.mbr, UTP_PORT3);
RTK_PORTMASK_PORT_SET(vlan2.mbr, EXT_PORT0);
RTK_PORTMASK_PORT_SET(vlan2.untag, UTP_PORT3);
rtk_vlan_set(VLAN2_VID, &vlan2);
/* set PVID for each port */
rtk_vlan_portPvid_set(UTP_PORT2, VLAN1_VID, 0);
rtk_vlan_portPvid_set(UTP_PORT3, VLAN2_VID, 0);
i=0;
while (1)
{
i++;
if(i >= 20)
{
rtl8367c_getAsicReg(RTL8367C_REG_PORT6_STATUS, ®Value);
if(regValue&0x10)SMI_LED_ON;
else SMI_LED_OFF;
i = 0;
}
LL_mDelay(10);
}
rtk_error_init:;
while(1)
{
SMI_LED_ON;
LL_mDelay(50);
SMI_LED_OFF;
LL_mDelay(50);
}
}
完整工程不开源,提供参考代码,提供两个固件,一个是傻瓜直通,一个是划分VLAN
组装流程
3D打印外壳还在验证中,后续更新
先组装电口 测试没问题再装光口

焊接细节

实物图
完成图




网络测试
光模块旁边的蓝色的LED用于指示光纤是否连通


设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










