The cab signal system developed by the Pennsylvania Railroad by Union Switch and Signal was a pulse code based system.
At the end of each block, where a wayside signal was usually located, a set of pulse code generators would be installed. They look like this:
http://acm.jhu.edu/~sthurmovik/Railpics ... erator.jpg
While there are many different signal aspects there are only 4 standard "speeds" in the PRR (and most other) rulebooks. These are NORMAL (MAS, on the LIRR this is 80), LIMITED (40-45), MEDIUM (30) and SLOW/RESTRICTED (15-20). Since there are only 4 standard "speeds" the PRR felt they could get away with having four cab signals. These are CLEAR, APPROACH LIMITED, APPROACH and RESTRICTING.
On the LIRR, not wanting to be totally conformist, they dispensed with the signal name and just gave the speeds, 80, 40(45?), 30 and 15. Associated with each cab signal aspect is a code which is determined by the rate of electrical pulses. These are in decending order 180, 120, 75 and 0. They are designed to avoid harmonics giving a false higher code. Later on, the LIRR again wanting to be different added pulse rates of 270(?) and 420(?) for cab speed codes of 50 and 60 mph. Both 50 and 60mph would still be associated with "CLEAR" wayside signals, just to provide safety where the MAS wasn't 80.
The way the system works is at each point where one would have wayside signals, ie the end/start of a track-circut based block, there would be installed a set of code generators. These generators would use relay logic to pump the appropiate code into the rails IN FRONT of the train. The code would be based on the state of the NEXT block the train would enter. If the train was comming up on a 15mph type signal (like stop and proceed) then the '30' code would be generated and sent to the train. If the signal was APPROACH a 'MAS' code would be generated and sent to the train through the running rails.
The use of the running rails and the the absence of a pulse code giving a 15mph (Restricted) cab signal made the system failsafe. If the rails were broken or shorted out by lets say another train in front of you, you would recieve no code and hense 15mph cab signal. This enables the first train in a block to get a 'MAS' or other non-15 code and have a train in the same block get no pulses which gives a 15mph cab signal. Single car trains may not "short" all of this pulse current so single car trains must be given absolute block protection to the rear (unless specially equipped with special axle contactors).
ATC = Automatic Train Control, which usually involves moving blocks and computers to calculate the safe braking distance, although there are many different systems out there.
ATS = Automatic Train Stop, usually used in conjunction with a cab signal system, or trip cocks.
CSS = Cab Signal System, where the track communicates status information to the train cab. It can be used with fixed block systems and can enforce speed restrictions, depending on the system used. Some use trackside transponders, others use a signal transmitted through the rails.
Unfortunately you haven't quite kept your terms straight either.
ATC = Any train speed control system based on block information.
ATS = Any system which warns a train of non-clear signals OR stops a train after passing a "STOP" type signal.
CSS = What you said.
ACS = LIRR branded CSS with ATC.