Hello everybody, Here I want to take some guidance before i can start my work for new product development.I am going to make product in which main CPU card will be communicating with other 16 scanner card.So I am looking for which communication method I have to adopt for communication between CPU and scanner cards.I though like I should use parallel bus interface like PCI or VME but it is very costly.Even Embedded card based on that are very costly so now I came to serial interface. Now I am thinking for any good fieldbus protocol like profibus,lonworks,interbus etc. If i am going for Profibus,then can anybody help me how I have to go?whether I have to implement by using specific protocol chip or by using software protocol with RS485 only? Please suggest me regarding this. Please reply me also my email id: premjic@masibus.com Thanking you, regds, Premji Chaudhari.
Premji, Probably the most important thing to consider in this decision is exactly how much data you need to transfer and at what speed. This will have a pretty dramatic effect on your selection of a physical media and depending on the processor you choose, you'll have to consider the processing power needed to achieve that throughput. As far as simplicity goes, however, a MODBus fieldbus with a vanilla RS-485 physical interface is pretty simple to implement. Regards, Jay
Hello Sir/Mr.Jay Thank for posting reply, As per you,I have to need enough processing power that I will have becoz I am going to select 32 bit with more than 100MHz clock microprocessor along with good system memory.So there is no doubt for processing power.Actually I am going to make product in whcich one main CPU card will be communicate with other 16 scanner I/O cards in same device.Now These scanner cards have one 16 bit microprocessor and some signal conditioning circuit by which they will process on field i/p data and they will be time-stamped.Now I have to implement proper methos between main CPU card and this scanner card so main CPU card will take data from these scanner cards. Initially I thought by using parallel interfacing using PCI,VME etc.But for this I have to pay much for readymade embedded CPU board as a main CPU in my product.Then I came to serial bus interface between these cards. So I want to implement such a protocol which has good ability,throughput,deterministic,error-correction,user fexibility,future expansion,low cost etc. Also to implement fieldbus,there are asic chips are available,but by that way again cost will come in to way.Although I can develop by software writing and using RS485 but I have to pay my time.so there is a hesitation... If any comment/idea,plz forward me. Thanks again. Premji.
Why are you "locked" on your Profibus idea? As Jay said before, you should choose the protocol starting from the data throughput you need; it is not possible to implement Profibus only via software, if you want to do a full Profibus compliant system (up to 12Mbit/s), and the Profibus chips are expensive. Why don't you take a look at Modbus (if you want an easy to implement and standard RS485 protocol) or CAN? CAN is already present in most microcontrollers, is cheap and reaches speeds up to 1Mbit/s. The CAN based CANopen protocol already implements all the features you described in your previous posts and can be fully implemented in software (you still must have proper CAN hardware), look at http://www.can-cia.de for more informations on it.
Hi Everybody, Already I found some profibus chips for slave and master from SIEMENS.But If I want to implement this protocol without using these chips then is it proper or not? Anyway I have to make product in low cost,Here If i am using these chips in my product then there will be 17 chips(1 for master card-main CPU card and 16 for slave cards-scanner cards) I have to use for only one device. Can I implement by writing protocol with RS485 physical,without using these chips? Please guide me. Thanks, Premji.
Hi Everybody, Thanks for support, Actually now I understood that I have to go for protocol which can support file transfer. Here I am giving my overview.I have 16 scanner card,each has 8 analog input and 32 digital input.Scanner card will take data from field and store it temporarily with time stamp.Here we have to go with worst case consideration to get maximum data for scanner temporary storage.Each scanner card is taking 10 ms to scan it's inputs.After every 10ms scanning repeats.Also this is parellely with all scanner cards.so in 10 ms,maximum data collection at local memory of scanner card is like - 16 byte for 8 analog inputs. - 32 bit for 32 digital inputs,so 4 byte. - 3 byte for time stamp of 8 analog inputs so total time stamp for analog input is 24 byte. - similarly for digital inputs,32 X 3 = 96 bytes. So here in each scanner card has total bytes storage is 140 bytes.just after every 10 ms.This is for worst condition,Actually it may not be.Although we have to design by considering worst case,so it will not make never problem in future. Now here after every 10 ms,it is not possible to make communication between master CPU and these scanner card to take data from each scanner one by one.So here scanner card will store some data for temparory.Suppose we take 1 second.i.e.After every 1 second CPU wants to take data from same card,then just see storage in scanner card. In 10 ms,it was 140 byts.So in 1000 ms = 1 sec it will be 140,000 bytes. Now see this is for all scanner cards.(in worst case.practically is impossible). Now CPU will start to take data from each scanner card one by one with even high speed like 1 Mbps.but this comminication is based on serial UART port or CAN bus.But here one limitation is much overhead exists.Because by this communication,After every one byte or 3 byte transmission,interrupt will be generated.So how many time it will generate,if we see for all card. So this is the big headache. So I am looking for file transfer protocol or aomething else.So it can transmit many data at only one interrupt generation. Please suggest me. Thanks.
Maybe you can consider Ethernet and TCP or UDP? With a 100Mbit/s link you can easily achieve the desired throughput, and in that environment you already have the File Transfer Protocol you need. Look at Keil's XC167 Eva Board (Microcontroller & Ethernet Hardware) + ARTX166, it already implements almost everything you need.
OK sir, Also I thought for this Ethernet and now looking for this only. Thanks,