Overview
The Siemens ERTEC 200P is an ASIC designed primarily for PROFINET device development, integrating a dual Ethernet PHY, ARM9 core, and on-chip peripherals targeting industrial I/O. Because the silicon exposes Layer 2 access through the PROFINET Device Development Kit (DevKit), EtherNet/IP — which is built on CIP over standard Ethernet/TCP/UDP — can be ported to the same hardware without modification. This reference describes the protocol requirements, software stack components, and licensing constraints needed to run an EtherNet/IP node on the ERTEC 200P.
Hardware Platform: ERTEC 200P Capabilities
The ERTEC 200P integrates the resources required for both PROFINET and EtherNet/IP device implementations:
- Integrated dual 100 Mbit/s Ethernet PHY supporting switch-internal cut-through and store-and-forward modes. The PHY is protocol-agnostic; the "PROFINET-IP" chapter label in the datasheet refers to PROFINET's use of the PHY, not an exclusive hardware lock.
- ARM926EJ-S core (typically 250 MHz) for application and stack execution.
- External memory interface for SDRAM/SRAM/Flash to host the protocol stack, CIP object library, and application code.
- Enhanced Real-Time Ethernet Controller (ERTEC) MAC with IRT-aware cut-through, but usable as a standard IEEE 802.3 MAC when PROFINET RT/IRT are disabled.
Protocol Foundation: CIP on Ethernet
According to ODVA publication PUB00138R8 CIP on Ethernet, EtherNet/IP adapts the Common Industrial Protocol (CIP) to standard Ethernet transport. CIP provides a unified object model that is identical across DeviceNet, ControlNet, and EtherNet/IP — only the link-layer encapsulation differs. On Ethernet, CIP rides on:
| Layer | Function | Standard |
|---|---|---|
| Physical | 100 Mbit/s, full duplex, switched | IEEE 802.3 |
| Data Link | MAC addressing, frame format | IEEE 802.3 |
| Network | IP addressing, fragmentation | IETF RFC 791 (IPv4) |
| Transport | Explicit messaging, I/O connections | UDP (port 2222 implicit), TCP (port 44818 explicit), IETF RFC 793/768 |
| Application | CIP services, object model | ODVA CIP volumes 1–7 |
As outlined in the Rockwell Automation EtherNet/IP white paper, a device can behave as either an Adapter (server I/O device) or Scanner (master/PLC-class) node. Adapter functionality is the lowest-effort entry point on the ERTEC 200P.
Software Stack Components on the DevKit
The PROFINET Device Development Kit for ERTEC 200P exposes its TCP/IP subsystem as a reusable wrapper. Per the Siemens TCP/IP Stack manual, this component is responsible for:
- TCP and UDP socket handling, including listen/accept, connect, send, receive.
- IP packet send/receive through the ERTEC MAC driver.
- ARP, ICMP, and optional IGMP/MLD support.
- BSD-style socket API for application code.
For EtherNet/IP, the DevKit TCP/IP stack supplies the IETF-defined transport layer functions. Above it, the application supplies the CIP encapsulation layer and CIP object library.
Layer 2 Access
The DevKit exposes Layer 2 (raw Ethernet) send/receive hooks, which means the application can emit EtherType 0x0800 (IPv4), 0x0806 (ARP), 0x88CC (LLDP), and 0x88A4 (EtherNet/IP encapsulation header on UDP/TCP) without interference from PROFINET RT/IRT framing. To free the MAC for non-PROFINET traffic:
- Disable PROFINET RT/IRT scheduling in the DevKit configuration.
- Release the IRT time-slot reserves; switch the MAC to standard store-and-forward.
- Register an EtherType filter for 0x0800 and 0x88CC so that standard Ethernet/IP/LLDP frames reach the socket layer.
Required CIP Objects for an Adapter
An EtherNet/IP Adapter must expose a defined subset of CIP objects. Minimum object list for a class-A adapter:
| Class Code (hex) | Object | Required |
|---|---|---|
| 0x01 | Identity | Mandatory |
| 0x02 | Message Router | Mandatory |
| 0x03 | DeviceNet (required field set even on EtherNet/IP) | Mandatory for ODVA conformance |
| 0x04 | Assembly | Mandatory for I/O |
| 0x05 | Connection | Mandatory for I/O |
| 0x06 | Connection Manager | Mandatory |
| 0x0F | Parameter | Mandatory |
| 0x10 | Parameter Group | Mandatory if Parameter objects are grouped |
| 0x44 | EtherNet/IP Link | Mandatory |
| 0x45 | EtherNet/IP Interface Configuration | Mandatory |
| 0xF5 | TCP/IP Interface | Mandatory |
| 0x47 | QoS (DSCP) | Recommended |
| 0x48 | LLDP Management | Optional |
Implementations must respond to the Get_Attribute_Single and Set_Attribute_Single services (service codes 0x0E, 0x10) on the supported instances. Instance 0 (class attributes) and Instance 1 of the Identity object must always be reachable.
IGMP and Multicast Considerations
EtherNet/IP uses IP multicast for Class 1 and Class 3 implicit I/O connections (UDP port 2222, multicast group 239.192.1.0–239.192.1.255 reserved for CIP transport class). Although ODVA does not mandate IGMPv2/v3 join support on simple adapters, leaving it out means the device depends on a flood-from-switch behavior and may not scale on managed networks.
- Recommended: Implement IGMPv2 join/leave for the multicast groups assigned by the scanner during Forward_Open parameter negotiation.
- Acceptable for non-managed networks: Skip IGMP; treat the MAC multicast filter directly using the multicast address mask exposed by the ERTEC MAC registers.
- Hardware filter: Program the ERTEC 200P hash table for the assigned multicast destination so non-subscribed frames are dropped at the MAC.
Transport Layer Configuration
UDP Port 2222 — Implicit I/O
The CIP encapsulation layer for implicit messaging uses UDP port 2222. On the ERTEC 200P, configure the TCP/IP wrapper to:
- Bind a UDP socket to 0.0.0.0:2222.
- Enable receive for the multicast groups assigned at runtime.
- Set DSCP field per CIP Connection object (typically 0x2E for Class 1 priority, 0x00 for Class 3).
TCP Port 44818 — Explicit Messaging
All CIP explicit messaging and encapsulation commands (ListIdentity, SendRRData, SendUnitData) traverse TCP port 44818. The DevKit TCP/IP stack supports up to 16 concurrent TCP connections; the ERTEC 200P resource ceiling is comfortable for an Adapter role.
Encapsulation Header
Every explicit message begins with a 24-byte encapsulation header. The application must parse:
struct EncapsulationHeader {
uint16_t command;
uint16_t length;
uint32_t session_handle;
uint32_t status;
uint8_t sender_context[8];
uint32_t options;
};
Supported commands per ODVA: 0x0065 ListIdentity, 0x006F SendRRData, 0x0070 SendUnitData, 0x0064 RegisterSession, 0x0066 UnregisterSession.
ODVA Membership and Stack Licensing
The CIP specification is publicly available, but devices bearing the ODVA "EtherNet/IP Conformant" mark require conformance testing. Practical licensing paths:
| Path | Cost | Effort | Use Case |
|---|---|---|---|
| Become ODVA Vendor Member | Annual membership fee | Medium | Long product line, branding required |
| License a stack (e.g., from ODVA member vendors) | Per-project royalty | Low | Single product, faster time-to-market |
| Self-implement from CIP volumes | None (manual IP effort) | High | Restricted budget, in-house CIP expertise |
Implementation Path: Adapter Role
The simplest ERTEC 200P EtherNet/IP deployment is an Adapter. Implementation steps:
- Project setup: Start from the PROFINET DevKit sample; remove PROFINET-specific task scheduling.
- TCP/IP layer: Reuse the DevKit TCP/IP wrapper. Configure IP addressing via DHCP or static; populate the TCP/IP Interface object (0xF5).
- EtherNet/IP encapsulation: Implement a thread/task handling the TCP 44818 listener and the encapsulation command parser.
- CIP object database: Implement Identity, Message Router, Connection Manager, Assembly, Connection, Parameter, TCP/IP Interface, and EtherNet/IP Link objects.
- I/O connection engine: Handle Forward_Open (service 0x54) and Forward_Close (0x4E) on the Connection Manager. Track Class 1 and Class 3 connection instances in the Connection object.
- Multicast plumbing: Join the multicast group on Forward_Open, leave on Forward_Close.
- Diagnostic counters: Populate the EtherNet/IP Link object counters for transmit/receive errors, dropped frames, and octet counts.
Memory Footprint
Indicative RAM/ROM partitioning for an Adapter-only stack on ERTEC 200P:
| Component | RAM (KB) | ROM (KB) |
|---|---|---|
| TCP/IP wrapper + sockets | 32 | 48 |
| CIP object database (base) | 12 | 40 |
| Connection Manager state | 4 | 8 |
| Encapsulation layer | 4 | 12 |
| Application + I/O buffers | 32 | 24 |
| Reserved | 16 | 0 |
| Total | ~100 KB | ~132 KB |
Leave at least 1 MB SDRAM headroom for application expansion; the ERTEC 200P typically pairs with 8–32 MB SDRAM.
Verification and Conformance Testing
Once the stack is operational, validate against the ODVA EtherNet/IP CT (Conformance Test) suite:
- Wire capture: Run Wireshark with an EtherNet/IP dissector enabled. Verify ListIdentity response, RegisterSession/UnregisterSession handshake, and Forward_Open parameter negotiation.
- Behavior against reference scanner: Use Rockwell Studio 5000 Logix Designer or a third-party CIP scanner to drive the adapter under nominal and fault conditions.
- Stress test: Cycle power, force IP address conflict, test duplicate session rejection, and verify Connection Timeout multiplier behavior (typically 4x RPI).
- EDS file: Publish an EDS (Electronic Data Sheet) describing object instances, parameter defaults, and connection paths so the scanner can configure the adapter offline.
Troubleshooting Matrix
| Symptom | Likely Root Cause | Remediation |
|---|---|---|
| No response to ListIdentity (UDP/TCP) | Encapsulation task not started or socket not bound | Verify TCP 44818 listener; check DevKit task priority |
| RegisterSession returns error 0x0001 | Unsupported protocol version or invalid sender context | Set protocol version 1, ensure sender_context is echoed back |
| Forward_Open rejected with 0x0104 (connection not found) | Connection Manager object not implemented or wrong instance | Confirm Connection Manager class code 0x06, instance 1 |
| I/O data dropped on managed switch | IGMP not joined; multicast flooded then filtered | Implement IGMPv2 join on Forward_Open |
| ARP not resolving scanner address | TCP/IP wrapper not registering ARP responder | Verify ARP handler in DevKit is linked to the MAC RX path |
| Identity object reports wrong vendor ID | ODVA-assigned vendor ID not populated | Apply for ODVA vendor ID; replace placeholder 0x0000 |
| EDS cannot be parsed by scanner | EDS file syntax error or unsupported revision | Validate EDS using ODVA EDS checker tool |
Field-Proven Caveats
- Clock drift: The DevKit's internal PTP stack may still emit sync frames; ensure PROFINET sync is fully disabled to avoid spurious multicast frames confusing the scanner.
- PHY LED behavior: LED signaling is PROFINET-defined; expect non-standard link/activity behavior on EtherNet/IP. External LEDs may need to be re-mapped in firmware.
- EMC: The hardware meets PROFINET EMC profiles; this covers EtherNet/IP but field installations should still observe CIP volume 2 recommended cable categories (Cat 5e minimum, Cat 6A for industrial sites > 50 m).
- Concurrent PROFINET + EtherNet/IP: Theoretically possible but unsupported by the DevKit build chain and ODVA/SIEMENS documentation. Run only one industrial Ethernet protocol at a time.
Summary of Constraints
The ERTEC 200P silicon, exposed through the Siemens DevKit, supports EtherNet/IP Adapter implementation without hardware modification. The TCP/IP wrapper already in the DevKit satisfies IETF UDP/TCP requirements. IGMP remains an engineering decision. CIP objects must be implemented to ODVA specification. The only barriers are software effort and conformance licensing. A Vendor Member ODVA relationship, or a licensed stack, is the recommended path for production deployment.
Can the ERTEC 200P run EtherNet/IP without an ODVA stack license?
Yes. The TCP/IP wrapper, Layer 2 access, and CIP specification are usable without a commercial stack license. You must still implement the CIP object database, encapsulation layer, and connection manager yourself. You cannot claim ODVA conformance without passing the official CT suite, which is only available to Vendor Members.
Is IGMP mandatory for an EtherNet/IP adapter on ERTEC 200P?
No. ODVA does not require IGMP for adapters, but on switched networks with Class 1 multicast I/O, IGMPv2 join is strongly recommended. The DevKit TCP/IP stack exposes the APIs needed to implement the join/leave primitives using the ERTEC MAC multicast hash filter.
Which CIP objects must be present at minimum?
Identity (0x01), Message Router (0x02), DeviceNet (0x03), Assembly (0x04), Connection (0x05), Connection Manager (0x06), Parameter (0x0F), TCP/IP Interface (0xF5), and EtherNet/IP Link (0x44) plus EtherNet/IP Interface Configuration (0x45). Additional objects depend on the device profile.
Can the ERTEC 200P act as an EtherNet/IP scanner?
Technically yes if the application layer provides scanner state machines, but the DevKit is not packaged for scanner development and ODVA conformance testing for scanner-class devices is more demanding. Adapter is the supported entry point.
What EDS revision should be generated?
Use EDS revision 3.x or later for modern scanners (Studio 5000 v21+, RSLogix 5000 v16). Specify the ODVA-assigned vendor ID, device type, and parameter object defaults in the [Device] and [Param] sections.