Difference between revisions of "Component: TCP/IP (ENC28J60) (Comms: Networking)"

From Flowcode Help
Jump to navigationJump to search
Line 44: Line 44:
  
 
''<span style="color:red;">No additional examples</span>''
 
''<span style="color:red;">No additional examples</span>''
 +
 +
  
  
Line 49: Line 51:
 
==Macro reference==
 
==Macro reference==
  
 +
===SetMyIPAddress===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 82: Line 85:
  
  
 +
===PacketSend===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 100: Line 104:
  
  
 +
===MakeTcpSynackFromSyn===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 118: Line 123:
  
  
 +
===MakeArpRequest===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 136: Line 142:
  
  
 +
===InitialiseDataLengthInfo===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 149: Line 156:
  
  
 +
===MakeTcpAckFromAny===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 167: Line 175:
  
  
 +
===PacketReceive===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 180: Line 189:
  
  
 +
===CheckForTCPType===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 193: Line 203:
  
  
 +
===CheckArpPacketIsMyreplyArp===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 206: Line 217:
  
  
 +
===CheckForIp===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 224: Line 236:
  
  
 +
===CheckForTCPPort===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 242: Line 255:
  
  
 +
===CheckForPing===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 255: Line 269:
  
  
 +
===GetModuleRevision===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 268: Line 283:
  
  
 +
===MakeTcpAckWithData===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 286: Line 302:
  
  
 +
===SetMyMACAddress===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 329: Line 346:
  
  
 +
===MakeArpAnswerFromRequest===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 342: Line 360:
  
  
 +
===ReadArrayFromBuffer===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 370: Line 389:
  
  
 +
===ReadRegister===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 388: Line 408:
  
  
 +
===CheckForARP===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 406: Line 427:
  
  
 +
===ClientSendPacket===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 464: Line 486:
  
  
 +
===MakeEchoReplyFromRequest===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 482: Line 505:
  
  
 +
===ControlLEDs===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 500: Line 524:
  
  
 +
===GetDataLength===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 513: Line 538:
  
  
 +
===GetTcpDataPointer===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 526: Line 552:
  
  
 +
===WriteRegister===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 549: Line 576:
  
  
 +
===FillTcpData===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 572: Line 600:
  
  
 +
===ReadStringFromBuffer===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 595: Line 624:
  
  
 +
===GetSendersMAC===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 613: Line 643:
  
  
 +
===FillTcpArray===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 641: Line 672:
  
  
 +
===Initialise===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-

Revision as of 11:52, 3 February 2023

Author Matrix TSL
Version 2.2
Category Comms: Networking


TCP/IP (ENC28J60) component

A set of routines used to control a ENC28J60 TCP/IP Module. Required connections VCC, Reset, GND, SCK, MISO, MOSI, CS. Leave these pins disconnected CLKOUT, ENC_WOL, ENC_INT

Component Source Code

Please click here to download the component source project: FC_Comp_Source_TCPIP_ENC28J60.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_TCPIP_ENC28J60.fcfx

Detailed description

No detailed description exists yet for this component

Examples

No additional examples



Macro reference

SetMyIPAddress

Fc9-comp-macro.png SetMyIPAddress
Allows the IP Address specified in the component properties to be overridden. The IP Address will revert back to the IP specified in the component properties as part of the initialise macro. 
Fc9-u8-icon.png - BYTE IP0
IP Address Parameter - e.g. 192 
Fc9-u8-icon.png - BYTE IP1
IP Address Parameter - e.g. 168 
Fc9-u8-icon.png - BYTE IP2
IP Address Parameter - e.g. 1 
Fc9-u8-icon.png - BYTE IP3
IP Address Parameter - e.g. 250 
Fc9-void-icon.png - VOID Return


PacketSend

Fc9-comp-macro.png PacketSend
Attempts to transmit a data packet to the ENC28J60 module. 
Fc9-u16-icon.png - UINT Length
 
Fc9-void-icon.png - VOID Return


MakeTcpSynackFromSyn

Fc9-comp-macro.png MakeTcpSynackFromSyn
 
Fc9-u16-icon.png - UINT Port
 
Fc9-void-icon.png - VOID Return


MakeArpRequest

Fc9-comp-macro.png MakeArpRequest
 
[[File:]] - ServerIP
 
Fc9-void-icon.png - VOID Return


InitialiseDataLengthInfo

Fc9-comp-macro.png InitialiseDataLengthInfo
Initialises the data pointers to allow us to craft a response containing data 
Fc9-void-icon.png - VOID Return


MakeTcpAckFromAny

Fc9-comp-macro.png MakeTcpAckFromAny
 
Fc9-u16-icon.png - UINT Port
 
Fc9-void-icon.png - VOID Return


PacketReceive

Fc9-comp-macro.png PacketReceive
Attempts to receive a data packet from the ENC28J60 module. Returns the number of bytes received. 
Fc9-u16-icon.png - UINT Return


CheckForTCPType

Fc9-comp-macro.png CheckForTCPType
Checks to what kind of TCP type the received data is requesting. Returns a bit field specifying the type of request. 0x01 = Ack Requires, 0x02 = Synchronise 0x10 = Ack  
Fc9-u8-icon.png - BYTE Return


CheckArpPacketIsMyreplyArp

Fc9-comp-macro.png CheckArpPacketIsMyreplyArp
 
Fc9-u8-icon.png - BYTE Return


CheckForIp

Fc9-comp-macro.png CheckForIp
Checks to see if the received data is an IP request with my IP address. 
Fc9-u16-icon.png - UINT Length
 
Fc9-u8-icon.png - BYTE Return


CheckForTCPPort

Fc9-comp-macro.png CheckForTCPPort
Checks to see if the received data is requesting the server port 
Fc9-u16-icon.png - UINT Port
 
Fc9-u8-icon.png - BYTE Return


CheckForPing

Fc9-comp-macro.png CheckForPing
Checks to see if the received data is a Ping request 
Fc9-u8-icon.png - BYTE Return


GetModuleRevision

Fc9-comp-macro.png GetModuleRevision
Requets the module revision number and returns the value supplied by the module's firmware. 
Fc9-u8-icon.png - BYTE Return


MakeTcpAckWithData

Fc9-comp-macro.png MakeTcpAckWithData
 
Fc9-u16-icon.png - UINT DataLength
 
Fc9-void-icon.png - VOID Return


SetMyMACAddress

Fc9-comp-macro.png SetMyMACAddress
Allows the MAC Address specified in the component properties to be overridden. The MAC Address will revert back to the MAC specified in the component properties as part of the initialise macro. 
Fc9-u8-icon.png - BYTE MAC0
MAC Address Parameter 
Fc9-u8-icon.png - BYTE MAC1
MAC Address Parameter 
Fc9-u8-icon.png - BYTE MAC2
MAC Address Parameter 
Fc9-u8-icon.png - BYTE MAC3
MAC Address Parameter 
Fc9-u8-icon.png - BYTE MAC4
MAC Address Parameter 
Fc9-u8-icon.png - BYTE MAC5
MAC Address Parameter 
Fc9-void-icon.png - VOID Return


MakeArpAnswerFromRequest

Fc9-comp-macro.png MakeArpAnswerFromRequest
 
Fc9-void-icon.png - VOID Return


ReadArrayFromBuffer

Fc9-comp-macro.png ReadArrayFromBuffer
Reads an array of bytes from the buffer at location specified for the number of bytes specified. If a space character is encountered then the macro will return straight away without the space character in the string. 
Fc9-u16-icon.png - UINT BufferLocation
 
Fc9-u8-icon.png - BYTE NumberOfBytes
Number of bytes to read from the buffer and store into string 
Fc9-u8-icon.png - BYTE Data
 
Fc9-void-icon.png - VOID Return


ReadRegister

Fc9-comp-macro.png ReadRegister
Reads the value from a single register onboard the ENC28J60 module. 
Fc9-u8-icon.png - BYTE Address
 
Fc9-u8-icon.png - BYTE Return


CheckForARP

Fc9-comp-macro.png CheckForARP
Checks to see if the received data is an ARP request with my IP address. 
Fc9-u16-icon.png - UINT Length
 
Fc9-u8-icon.png - BYTE Return


ClientSendPacket

Fc9-comp-macro.png ClientSendPacket
 
Fc9-u16-icon.png - UINT DestPort
 
Fc9-u16-icon.png - UINT SourcePort
 
Fc9-u8-icon.png - BYTE Flags
 
Fc9-u8-icon.png - BYTE MaxSegmentSize
 
Fc9-u8-icon.png - BYTE ClearSeqAck
 
Fc9-u16-icon.png - UINT NextAckNum
 
Fc9-u16-icon.png - UINT DataLength
 
Fc9-u8-icon.png - BYTE DestMac
 
Fc9-u8-icon.png - BYTE DestIp
 
Fc9-void-icon.png - VOID Return


MakeEchoReplyFromRequest

Fc9-comp-macro.png MakeEchoReplyFromRequest
 
Fc9-u16-icon.png - UINT Length
 
Fc9-void-icon.png - VOID Return


ControlLEDs

Fc9-comp-macro.png ControlLEDs
Allows both the LEDs on the Ethernet socket to be controlled. Useful for checking if the SPI communications are functioning correctly. 
Fc9-u8-icon.png - BYTE Mode
0=Off, 1=On, 2=Auto 
Fc9-void-icon.png - VOID Return


GetDataLength

Fc9-comp-macro.png GetDataLength
Returns the number of received data bytes after the headers 
Fc9-u16-icon.png - UINT Return


GetTcpDataPointer

Fc9-comp-macro.png GetTcpDataPointer
 
Fc9-u16-icon.png - UINT Return


WriteRegister

Fc9-comp-macro.png WriteRegister
Writes a value to a single register onboard the ENC28J60 module. 
Fc9-u8-icon.png - BYTE Address
 
Fc9-u8-icon.png - BYTE Data
 
Fc9-void-icon.png - VOID Return


FillTcpData

Fc9-comp-macro.png FillTcpData
 
Fc9-u16-icon.png - UINT Position
 
Fc9-string-icon.png - STRING Data
 
Fc9-u16-icon.png - UINT Return


ReadStringFromBuffer

Fc9-comp-macro.png ReadStringFromBuffer
Reads a string from the buffer at location specified for the number of bytes specified. If a space character is encountered then the macro will return straight away without the space character in the string. 
Fc9-u16-icon.png - UINT BufferLocation
 
Fc9-u8-icon.png - BYTE NumberOfBytes
Number of bytes to read from the buffer and store into string 
Fc9-string-icon.png - STRING Return


GetSendersMAC

Fc9-comp-macro.png GetSendersMAC
Gets the MAC address from locations 6-11 of the IP Header 
Fc9-u8-icon.png - BYTE MAC
6-byte Array to store the MAC address 
Fc9-void-icon.png - VOID Return


FillTcpArray

Fc9-comp-macro.png FillTcpArray
 
Fc9-u16-icon.png - UINT Position
 
Fc9-u16-icon.png - UINT Count
 
Fc9-u8-icon.png - BYTE Data
 
Fc9-void-icon.png - VOID Return


Initialise

Fc9-comp-macro.png Initialise
Initialises the SPI connection to the TCPIP module and sets up some initial values. Flashes the LEDs on and off twice to confirm SPI comms are active. LEDs are then configured to auto functionality. 
Fc9-void-icon.png - VOID Return



Property reference

Fc9-prop-icon.png Properties
Fc9-conn-icon.png TCP IP Specifics
Fc9-type-21-icon.png Server Port
Sets the server's TCP/IP port address which is used to filter incoming TCP packets. 
Fc9-type-21-icon.png Buffer Size
Number of bytes to use for the transmit and receive buffer, we actually use this +1 to allow for a null termination. 8-bit PICs should set this to 255 to allow compilation to succeed. Other devices can have larger buffers. Default = 500 
Fc9-conn-icon.png SPI Settings
Fc9-type-16-icon.png Channel
SPI Channel selector 
Fc9-type-16-icon.png Prescale
Prescale option selector 
Fc9-type-5-icon.png MOSI
SPI Data Out Pin SDO - Also Known as Master Out Slave In (MOSI) when used in Master mode. 
Fc9-type-5-icon.png MISO
SPI Data In Pin SDI - Also Known as Master In Slave Out (MISO) when used in Master mode. 
Fc9-type-5-icon.png CLK
SPI Clock Pin CLK - The Clock signal is driven by the SPI master. 
Fc9-type-5-icon.png CS / SS
Chip Select / Slave Select Pin Master Mode: General purpose output pin used to select the remote SPI device. Slave Mode: Hardware chip select pin input used to select the SPI device.  
Fc9-type-5-icon.png Reset Pin
 
Fc9-conn-icon.png MAC Address
Fc9-type-21-icon.png MAC0
 
Fc9-type-21-icon.png MAC1
 
Fc9-type-21-icon.png MAC2
 
Fc9-type-21-icon.png MAC3
 
Fc9-type-21-icon.png MAC4
 
Fc9-type-21-icon.png MAC5
 
Fc9-conn-icon.png IP Address
Fc9-type-21-icon.png IP0
 
Fc9-type-21-icon.png IP1
 
Fc9-type-21-icon.png IP2
 
Fc9-type-21-icon.png IP3
 
Fc9-conn-icon.png Simulation
Fc9-type-10-icon.png Label
 
Fc9-type-16-icon.png Sim Type
Decides how to perform the simulation of the component. TCP IP - Communicates using the Windows TCP IP communications DLL SPI / API - Communicates using the CAL SPI to allow the communications to be analysed and debugged. 
Fc9-conn-icon.png SPI Simulation
Fc9-type-7-icon.png Scope Traces
Selects if the scope traces are automatically generated or not 
Fc9-type-7-icon.png Console Data
Selects if the console data is automatically generated or not 
Fc9-type-16-icon.png API